如何在Go语言中访问带有连字符但没有值的命令行参数

huangapple go评论114阅读模式
英文:

How to access command line arguments with hyphens but without value in Go Lang

问题

我想要访问带有连字符的命令行参数,例如:

  1. go run user.go -version

或者

  1. go run user.go --version

当我执行这样的命令时,我收到以下错误信息:

  1. flag provided but not defined: -version
  2. Usage of /tmp/go-build354377460/command-line-arguments/_obj/exe/user:
  3. --version string
  4. prints current version and exits
  5. exit status 2

以下是我的代码:

  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. )
  6. func main() {
  7. var version string
  8. flag.StringVar(&version, "-version", "", "prints current version and exits")
  9. // 解析命令行参数
  10. flag.Parse()
  11. fmt.Println(flag.Args())
  12. }

非常感谢您的帮助。提前致谢。

英文:

I want to access command line arguments with hyphens for example:

  1. go run user.go -version

or

  1. go run user.go --version

When I executing like this, I received the below error:

  1. flag provided but not defined: -version
  2. Usage of /tmp/go-build354377460/command-line-arguments/_obj/exe/user:
  3. --version string
  4. prints current version and exits
  5. exit status 2

Here is my code:

  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. )
  6. func main() {
  7. var version string
  8. flag.StringVar(&version, "-version", "", "prints current version and exits")
  9. // Parse the flags
  10. flag.Parse()
  11. fmt.Println(flag.Args())
  12. }

Any help is greatly appreciated. Thanks in advance.

答案1

得分: 3

使用布尔类型。在标志定义中不要包含“-”。

  1. func main() {
  2. var version bool
  3. flag.BoolVar(&version, "version", false, "打印当前版本并退出")
  4. flag.Parse()
  5. if version {
  6. fmt.Println("hello")
  7. return
  8. }
  9. fmt.Println(flag.Args())
  10. }
英文:

Use a bool. Do not include the "-" in the flag definition.

  1. func main() {
  2. var version bool
  3. flag.BoolVar(&version, "version", false, "prints current version and exits")
  4. flag.Parse()
  5. if version {
  6. fmt.Println("hello")
  7. return
  8. }
  9. fmt.Println(flag.Args())
  10. }

huangapple
  • 本文由 发表于 2017年1月11日 21:26:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/41592185.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定