导入flag

import "flag"

使用flag

// 直接定义变量
// 默认值为12
n := flag.Int("n", 12, "tip for n")
// 绑定已有变量
// 默认值为12
int m
flag.IntVar(&m, "flagname", 12, "tip for m")
// 定义完flag后,需要解析
flag.Parse()
// 输出变量
fmt.Println(n)
fmt.Println(m)

运行文件时,可以为n,m赋值。

go run main.go -n=1 -m=2

同时支持以下语法。

cmd -flag
cmd -flag=x
cmd -flag x

方法列表

创建变量

方法绑定类型
func Bool(name string, value bool, usage string) *bool布尔
func func Duration(name string, value time.Duration, usage string) *time.Duration时间
func Float64(name string, value float64, usage string) *float64浮点
func Int64(name string, value int64, usage string) *int64整数
func Int(name string, value int, usage string) *int整数
func String(name string, value string, usage string) *string字符串

绑定变量

方法绑定类型
func BoolVar(p *bool, name string, value bool, usage string)布尔
func DurationVar(p *time.Duration, name string, value time.Duration, usage string)时间
func Float64Var(p *float64, name string, value float64, usage string)浮点
func Int64Var(p *int64, name string, value int64, usage string)整数
func IntVar(p *int, name string, value int, usage string)整数
func StringVar(p *string, name string, value string, usage string)字符串