美文网首页
Golang下的flag模块使用

Golang下的flag模块使用

作者: 9c46ece5b7bd | 来源:发表于2018-04-27 21:26 被阅读963次

    flag模块主要用来解析命令行的参数

    一个比较好的第三方模块 cli

    常用函数如下:

    
    //定义一个字符串的变量
    type string string
    func String(name string, value string, usage string) *string
    
    //定义一个int型变量
    type int int
    func Int(name string, value int, usage string) *int
    
    //定义一个bool型变量
    type bool bool
    func Bool(name string, value bool, usage string) *bool
    
    func Float64(name string, value float64, usage string) *float64
    
    func Int64(name string, value int64, usage string) *int64
    
    //在所有的变量参数被设置后需要进行一次解析才生效
    func Parse()
    
    //给指定的参数设置值
    func Set(name, value string) error
    
    //Flag结构体
    type Flag struct {
            Name     string // name as it appears on command line
            Usage    string // help message
            Value    Value  // value as set
            DefValue string // default value (as text); for usage message
    }
    
    
    

    示例:

    $ cat flag-test.go
    package main
    
    import (
        "flag"
        "fmt"
    )
    
    //定义一个字符串变量,并制定默认值以及使用方式
    var species = flag.String("species", "gopher", "the species we are studying")
    
    //定义一个int型字符
    var nums  = flag.Int("ins", 1, "ins nums")
    
    func main() {
      // 上面定义了两个简单的参数,在所有参数定义生效前,需要使用flag.Parse()来解析参数
     flag.Parse()
      // 测试上面定义的函数
     fmt.Println("a string flag:",string(*species))
     fmt.Println("ins num:",rune(*nums))
    }
    
    $ go run flag-test.go 
    a string flag: gopher
    ins num: 1
    
    $ go run flag-test.go -ins 3 -species biaoge
    a string flag: biaoge
    ins num: 3
    

    相关文章

      网友评论

          本文标题:Golang下的flag模块使用

          本文链接:https://www.haomeiwen.com/subject/gvgilftx.html