我不知道我理解这背后的例子(从here采取)的理由,也没有人知道它试图了解Go语言沟通:标志命令行解析在golang
package main
import (
"flag"
"fmt"
)
func main() {
f := flag.NewFlagSet("flag", flag.ExitOnError)
f.Bool("bool", false, "this is bool flag")
f.Int("int", 0, "this is int flag")
visitor := func(a *flag.Flag) {
fmt.Println(">", a.Name, "value=", a.Value)
}
fmt.Println("Visit()")
f.Visit(visitor)
fmt.Println("VisitAll()")
f.VisitAll(visitor)
// set flags
f.Parse([]string{"-bool", "-int", "100"})
fmt.Println("Visit() after Parse()")
f.Visit(visitor)
fmt.Println("VisitAll() after Parse()")
f.VisitAll(visitor)
}
沿东西线设置的他们却再加入
int_val := f.get("int")
获得命名参数似乎更加有用。我对Go完全陌生,所以只是想熟悉这门语言。
https://gobyexample.com/command-line-flags就是一个很好的例子。 – elithrar
如果您想传递参数以解析程序f.Parse([] string {“ - bool”,“-int”,“100”})''的代码,则需要FlagSet。全局的'flag.Parse()'函数不接受一个参数来解析。这个代码示例可以在游览代码区的地方运行,您不能提供命令行参数。 – chmike