加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

命令行参数的技巧:Flag 库详解

发布时间:2021-05-19 16:06:44 所属栏目:移动互联 来源:互联网
导读:试着运行一下,第一个参数是执行文件的路径。 $gorundemo.gohelloworldhellogolang args[0]=/var/folders/72/lkr7ltfd27lcf36d75jdyjr40000gp/T/go-build1877852

试着运行一下,第一个参数是执行文件的路径。

$ go run demo.go hello world hello golang 

args[0]=/var/folders/72/lkr7ltfd27lcf36d75jdyjr40000gp/T/go-build187785213/b001/exe/demo 

args[1]=hello 

args[2]=world 

args[3]=hello 

args[4]=golang 

从上面你可以看到,os.Args 只能处理赏罚简朴的参数,并且对付参数的位置有严酷的要求。对付一些较量伟大的场景,就必要你本身界说理会法则,很是贫困。

假如然的赶上了所谓的伟大场景,那么还可以行使 Golang 的尺度库 flag 包来处理赏罚呼吁行参数。

本文将先容 Golang 尺度库中 flag 包的用法。

1. 参数种类

按照参数是否为布尔型,可以分为两种:

布尔型参数:如 --debug,后头不消再接详细的值,指定就为 True,不指定就为 False非布尔型参数

非布尔型参数:非布尔型,有也许是int,string 等其他范例,如 --name jack ,后头可以接详细的参数值

按照参数名的黑白,还可以分为:

长参数:好比 --name jack 就是一个长参数,参数名前有两个 -

短参数:凡是为一个或两个字母(是对应长参数的简写),好比 -n ,参数名前只有一个 -

2. 入门示例

我先用一个字符串范例的参数的示例,抛砖引玉

package main 

 

import ( 

    "flag" 

    "fmt" 

 

func main(){ 

    var name string 

    flag.StringVar(&name, "name", "jack", "your name") 

 

flag.Parse()  // 理会参数 

    fmt.Println(name) 

flag.StringVar 界说了一个字符串参数,它吸取几个参数

第一个参数 :吸取值后,存放在哪个变量里,需为指针

第二个参数 :在呼吁行中行使的参数名,好比 --name jack 里的 name

第三个参数 :若呼吁行中未指定该参数值,那么默认值为 jack

第四个参数:记录这个参数的用途或意义

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读