如何使用Golang询问“是”或“否”

Mad*_*ala 2 prompt go

promptUi用来创建选择列表。现在,我想在选择后提示“是”或“否”问题:

bold := color.New(color.Bold).SprintFunc()
cellTemplate := &promptui.SelectTemplates{
    Label:    "{{ . }}",
    Active:   "\U000027A4 {{ .| bold }}",
    Inactive: "  {{ . | faint }}",
    Help:     util.Faint("[Use arrow keys]"),
}

cellPrompt := promptui.Select{
    Label:     util.YellowBold("?") + " Select an environment to be installed",
    Items:     getCreateEnvironmentList(),
    Templates: cellTemplate,
}
_, value, err := cellPrompt.Run()
if err != nil {
    return fmt.Errorf("Failed to select: %v", err)
}

switch value {
case constants.CELLERY_CREATE_LOCAL:
    {
        // Prompt yes or no
    }
case constants.CELLERY_CREATE_GCP:
    {
        // Prompt yes or no
    }
default:
    {
        Back()
    }
}
Run Code Online (Sandbox Code Playgroud)

有类似的方法可以优雅地提示吗?

was*_*mup 7

试试这个func yesNo() bool

package main

import (
    "fmt"
    "log"

    "github.com/manifoldco/promptui"
)

func main() {
    fmt.Println(yesNo())
    fmt.Println(yesNo())

}
func yesNo() bool {
    prompt := promptui.Select{
        Label: "Select[Yes/No]",
        Items: []string{"Yes", "No"},
    }
    _, result, err := prompt.Run()
    if err != nil {
        log.Fatalf("Prompt failed %v\n", err)
    }
    return result == "Yes"
}
Run Code Online (Sandbox Code Playgroud)

输出:

? Select[Yes/No]: 
  ? Yes
    No

? Yes
true
? No
false
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案看起来比我的想法更酷。我要问用户键入“是”或“否”。谢谢你的主意! (2认同)