概述 flag包提供了一系列解析命令行参数的功能接口 命令行语法 命令行语法主要有以下几种形式 -flag //只支持bool类型 -flag=x -flag x //只支持非bool类型 以上语法对于一个或两个‘-’号,效果是一样的,但是要注意对于第三种情况,只支持非bool类型,原因是碰到如下情况时 cmd -x * *为0,false有可能表示一个文件名或文件,也有可能表示x标签的值为0或false,会产生二义性,因此规定第三种只支持非bool类型。对于整形flag,合法的值可以为 1234 , 0664 , 0x1234 或负数等。对于布尔型flag,可以为 1 , 0 , t , f , T , F , true , false , TRUE , FALSE , True , False 等 命令行参数解析方法 使用flag主要包括以下几步 定义flag参数,有三种方式 通过 flag.String(), Bool(), Int() 等 flag.Xxx() 方法,该种方式返回一个相应的指针 import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname") 通过 flag.XxxVar() 方法将flag绑定到一个变量,该种方式返回值类型,如 var flagvar int