flag 包定义了一系列函数,可用于定义命令行参数,支持的参数类型如下:

  • string:flag.StringVar 函数
  • bool:flag.BoolVar 函数
  • time.Duration: flag.DurationVar 函数
  • int: flag.IntVar 函数
  • uint: flag.UintVar 函数
  • float64: flag.Float64Var 函数
  • int64: flag.Int64Var 函数
  • uint64: flag.Uint64Var 函数

在命令行工具的开发过程中,我们常常需要设置一个同时支持短名称和长名称的选项,如 -d 等价于 --debug-p 等价于 --password。在使用 Go flag 包的情况下,该需求的实现相当简单,只需要定义两个不同的 flag 指向同一个变量即可。