我是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