import "flag"

flag包实现了命令行参数的解析。

要求:

使用flag.String(), Bool(), Int()等函数注册flag,下例声明了一个整数flag,解析结果保存在*int指针ip里:
import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname")
如果你喜欢,也可以将flag绑定到一个变量,使用Var系列函数:
var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help
message for flagname") }
或者你可以自定义一个用于flag的类型(满足Value接口)并将该类型用于flag解析,如下:
flag.Var(&flagVal, "name", "help message for flagname")
对这种flag,默认值就是该变量的初始值。

在所有flag都注册之后,调用:
flag.Parse()
来解析命令行参数写入注册的flag里。

解析之后,flag的值可以直接使用。如果你使用的是flag自身,它们是指针;如果你绑定到了某个变量,它们是值。
fmt.Println("ip has value ", *ip) fmt.Println("flagvar has value ", flagvar)
解析后,flag后面的参数可以从flag.Args()里获取或用flag.Arg(i)单独获取。这些参数的索引为从0到flag.NArg()-1。

命令行flag语法:
-flag -flag=x -flag x // 只有非bool类型的flag可以
可以使用1个或2个'-'号,效果是一样的。最后一种格式不能用于bool类型的flag,因为如果有文件名为0、false等时,如下命令:
cmd -x *
其含义会改变。你必须使用-flag=false格式来关闭一个bool类型flag。

Flag解析在第一个非flag参数(单个"-"不是flag参数)之前停止,或者在终止符"--"之后停止。

整数flag接受1234、0664、0x1234等类型,也可以是负数。bool类型flag可以是:
1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False
时间段flag接受任何合法的可提供给time.ParseDuration的输入。

默认的命令行flag集被包水平的函数控制。FlagSet类型允许程序员定义独立的flag集,例如实现命令行界面下的子命令。FlagSet的方法和包水平的函数是非常类似的。

技术
©2019-2020 Toolsou All rights reserved,
JAVA基础(Math类)关于微信支付body(商品描述)遇到的问题使用正交表法设计测试用例 Unity3D Input按键系统访客手机抓取方法hive压缩&&hdfs合并小文件改主意!特斯拉开始向欧洲市场交付中国造Model 3 Chrome OS,对程序员和Windows意味着什么?,互联网营销用C语言做很简单的飞机游戏蚂蚁集团香港IPO获得中国证监会批准