gpt4 book ai didi

go - 查询FlagSet使用情况

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:22 25 4
gpt4 key购买 nike

我正在尝试构建一个 CLI,我希望其中一组三个参数一起出现。

command --alpha "value-a" --bravo "value-b" --charlie "value-c"

这就是我尝试这样做的方式:

import (
"github.com/spf13/pflag"
)

var (
alpha string
bravo string
charlie string
)

abcFlagSet := pflag.NewFlagSet("alpha", pflag.ContinueOnError)
abcFlagSet.StringVar(&bravo, "bravo", "", "bravo-description")
abcFlagSet.StringVar(&charlie, "charlie", "", "charlie-description")
cmd.Flags().AddFlagSet(abcFlagSet)

这可以正确识别 bravocharlie 标志。但是,我认为它将 alpha 视为 command 的子命令,并且不会解析分配给它的值,即 value-aFlagSet 是这个用例的错误用法吗?我应该如何解析三个参数可以一起出现或根本没有出现的这种情况?

最佳答案

https://github.com/spf13/pflag/blob/298182f68c66c05229eb03ac171abe6e309ee79a/flag.go#L1202-L1213 ,如此处所述,您正在形成一个名为 alphaFlagSet。显然,您的代码不会将其视为标志。定义名称为 alpha 的新标志的正确方法是

abcFlagSet.StringVar(&alpha, "alpha", "", "alpha-description")

关于go - 查询FlagSet使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52286439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com