golang flag標準庫命令列引數解析
阿新 • • 發佈:2019-01-03
今天看以太坊專案的時候發現有一個go語言的一個標準庫不是很明白,flag標準庫.flag標準庫一般常用於命令列程式的解析的,不多說,直接s上一個簡單的程式碼例子:
//flag.go
package main
import "flag"
var(
h bool
v string
)
func init(){
flag.BoolVar(&h, "h", false, "this is help") //①
flag.StringVar(&v, "", "", "Print to `version`") //②
}
func main(){
flag.Parse() //③
if h{ //④
flag.PrintDefaults() //⑤
}
}
然後在命令列執行
接下來對程式碼解讀一下.
①此處將this is help 繫結到h這個命令列變數上,也就是在命令列看到的第一行的 -h this is help
②將Print to versin 繫結到v這個命令列變數上,也就是-v version Print to version 這一行.注意這裡有幾個細節需要注意一下:
在②的標記中的Print to version
這裡面version
被” “ “這個符號包圍起來了.如果這裡沒有這個符號,在命令列-v後面顯示的將是string,也就是改命令列變數的型別.
④if h就是在命令列中是都有-h的輸入,如果有,進入⑤
⑤預設的列印方式,也就是-h,-v等這樣的列印方式,你也可以改寫此方法,將-h改寫成$h,~h,只要你願意都行
這就是我今天的小小總結,歡迎指正