部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用flag库和os库。
1:flag库的使用
Go语言标准库提供了用于快迅解析命令行参数的flag包,大致的使用步骤如下: a.通过flag.String(), flag.Bool(), flag.Int()等方式来定义命令行中需要使用的参数。 b.在定义完flag后,通过调用flag.Parse()来进行对命令行参数的解析。 c.获取flag.String(), flag.Bool(), flag.Int()等方法的返回值,即对应用户输入的参数. 需要注意的是flag.Xxx()返回的值是变量的内存地址,要获取值时要通过在变量前加*(星号)获取. 说明: 像flag.Int、flag.Bool、flag.String这样的函数格式都是一样的,调用的时候需要传入3个参数 参数的说明如下: 第一个arg表示参数名称,在控制台的时候,提供给用户使用. 第二个arg表示默认值,如果用户在控制台没有给该参数赋值的话,就会使用该默认值. 第三个arg表示使用说明和描述,在控制台中输入-arg的时候会显示该说明,类似-help
2:os库的使用
*和 & 可以互相抵消,同时注意,*&可以抵消掉,但&*是不可以抵消的
a和*&a是一样的,都是a的值,值为1 (因为*&互相抵消掉了)
同理,a和*&*&*&*&a是一样的,都是1 (因为4个*&互相抵消掉了)
个人感觉还是flag获取参数好用一点,因为flag更贴切参数的用法,而且可以查看详情.
&符号的意思是对变量取地址,如:变量a的地址是&a
*符号的意思是对指针取值,如:*&a,就是a变量所在地址的值,当然也就是a的值了