• go的命令行参数---flag


    (参考博客http://blog.csdn.net/u010003835/article/details/51896764)

    1、os原始命令行参数访问功能:

      package main

      import "os"

      import "fmt"

      func main(){

        argsWithProg := os.Args

        argsWithoutProg := os.Args[1:]

        arg := os.Args[3]

        fmt.Println(argsWithProg)

        fmt.Println(argsWithoutProg)

        fmt.Println(arg)

      }

    ~go build command-line-arguments.go
    ~./command-line-arguments a b c d [./command-line-arguments a b c d] [a b c d] c

    2、用flag包指定命令行参数
    (基本的标记声明仅支持字符串String,整数Int和布尔值Bool选项。每种声明包含三个参数(命令标志,默认值,简要解释),返回指针。示例如下:
    package main
    import "flag"
    import "fmt"
    func main(){
      wordPtr := flag.String("word", "foo", "a string")
      numPtr := flag.Int("numb", 60, "a number")
      boolPtr := flag.Bool("bool", false, "a bool")
      //所有声明都完成后需要调用flag.Palse()来执行命令解析
      flag.Parse()
      fmt.Println("word: ", *wordPtr)
      fmt.Println("numb: ", *numPtr)
      fmt.Println("bool: ", *boolPtr)
      //flag.Args()得到所有命令行的位置参数,且所有有标志的参数必须出现在位置参数之前
      fmt.Println("tail: ",flag.Args())
    }
    ------注意到,如果你省略一个标志,那么这个标志的值自动的设定为他的默认值
    $$test -word=yixuan
    word: yixuan
    numb: 60
    bool: false
    tail: []
    ------位置参数可以出现在任何标志后面
    $$test -word=yixuan arg1 arg2 arg3
    word: yixuan
    numb: 60
    bool: false
    tail: [arg1 arg2 arg3]
    ------注意,flag 包需要所有的标志出现位置参数之前(否则,这个标志将会被解析为位置参数)
    $$test -word=yixuan arg1 arg2 arg3 -numb=28
    word: yixuan
    numb: 60
    bool: false
    tail: [arg1 arg2 arg3 -numb=28]






  • 相关阅读:
    php实现rpc简单的方法
    统计代码量
    laravel的速查表
    header的参数不能带下划线
    PHP简单实现单点登录功能示例
    phpStorm函数注释的设置
    数据结构基础
    laravel生命周期和核心思想
    深入理解php底层:php生命周期
    Jmeter:实例(性能测试目标)
  • 原文地址:https://www.cnblogs.com/liushi-Oscar/p/8298660.html
Copyright © 2020-2023  润新知