我是Golang的新手,我一直无法使用标志找到解决此问题的解决方案。Golang flag:忽略丢失的标志并解析多个重复的标志
如何使用标志,以便我的程序能处理这样的,其中-term标志可能存在的次变量数,包括0次来电:
./myprogram -f flag1
./myprogram -f flag1 -term t1 -term t2 -term t3
我是Golang的新手,我一直无法使用标志找到解决此问题的解决方案。Golang flag:忽略丢失的标志并解析多个重复的标志
如何使用标志,以便我的程序能处理这样的,其中-term标志可能存在的次变量数,包括0次来电:
./myprogram -f flag1
./myprogram -f flag1 -term t1 -term t2 -term t3
您需要声明自己的类型它实现了Value接口。这是一个例子。
// Created so that multiple inputs can be accecpted
type arrayFlags []string
func (i *arrayFlags) String() string {
// change this, this is just can example to satisfy the interface
return "my string representation"
}
func (i *arrayFlags) Set(value string) error {
*i = append(*i, strings.TrimSpace(value))
return nil
}
然后在主函数你在哪里解析
var myFlags arrayFlags
flag.Var(&myFlags, "term", "my terms")
flag.Parse()
现在所有的条款都包含在片myFlags
这个解释是否正确?: – matt
如果你的意思是,上述工作和编译,那么是的。这就是 – reticentroot
以上的答案谢谢,你能告诉我这个解释是否正确吗?: 因为myFlags被称为Var的值参数,所以myFlags变成类型Value,并且String()和Set()方法自动运行。没有抱歉,我不小心发布了评论,然后因为5分钟过去而被锁定编辑。 – matt
绑定-term的标志,以你自己的类型实现的变量HTTPS ://golang.org/pkg/flag/#Value并收集每个Set()调用的值。 – Volker
谁能够低估解释我的问题是什么问题? – matt