导入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) | 字符串 |