golang flag

哆啦在这A梦在哪 · · 3339 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

定义 flag 参数

方法一:

通过 flag.Xxx() 方法返回一个相应的指针,举几个栗子:

wordPtr := flag.String("word", "foo", "a string")
numbPtr := flag.Int("numb", 42, "an int")
boolPtr := flag.Bool("fork", false, "a bool")

使用形式为 flag.Type(name, defValue, usage)

方法二:

通过 flag.XxxVar() 方法将 flag 绑定到一个变量,该种方式返回值类型,举个栗子:

var svar string
flag.StringVar(&svar, "svar", "bar", "a string var")

使用形式为 flag.TypeVar(&flagvar, name, defValue, usage)

方法三:

通过 flag.Var() 绑定自定义类型,自定义类型需要实现 Value 接口(Receives必须为指针),

type Value interface {
        String() string
        Set(string) error
}

使用方式是 flag.Var(&flagvar, name, usage)

解析

调用 flag.Parse() 解析命令行参数到定义的flag
注意,注意,注意(重要的事情说三遍)
这个方法一定要调用,而且是在定义所有flag方法之后,同时,在使用获取到的参数之前调用。这个方法的解释里面有写,详细例子请看下面代码。

获取参数其他

还可通过 flag.Args(), flag.Arg(i) 来获取非 flag 命令行参数

栗子

//FlagExce flag
func FlagExce() {

    name := flag.String("name", "stb", "jdy")//返回一个
    var age int
    flag.IntVar(&age, "age", 18, "is age")
//上面是定义flag获取的方法,之后执行解析函数
    flag.Parse()//这个函数一定要放在这个位子
//这里在使用上述获取到参数之前要调用解析函数

    log.Println("name:", *name)//使用获取到的参数
    log.Println("age:", age)

}


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:哆啦在这A梦在哪

查看原文:golang flag

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3339 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传