我想用连字符访问命令行参数,例如:
go run user.go -version
或者
go run user.go --version
当我这样执行时,收到以下错误:
flag provided but not defined: -version
Usage of /tmp/go-build354377460/command-line-arguments/_obj/exe/user:
--version string
prints current version and exits
exit status 2
这是我的代码:
package main
import (
"flag"
"fmt"
)
func main() {
var version string
flag.StringVar(&version, "-version", "", "prints current version and exits")
// Parse the flags
flag.Parse()
fmt.Println(flag.Args())
}
任何帮助是极大的赞赏。提前致谢。
最佳答案
使用 bool 。标记定义中不要包含“-”。
func main() {
var version bool
flag.BoolVar(&version, "version", false, "prints current version and exits")
flag.Parse()
if version {
fmt.Println("hello")
return
}
fmt.Println(flag.Args())
}