golang 提供了 flag 包來支援基本的命令列引數解析。命令列引數常用來為命令列程式指定選項。比如在wc -l
命令中-l
就是命令列引數。
命令列語法:
-flag //只支援bool型別
-flag=x
-flag x //只支援非bool型別
定義 flag 引數:1) 通過flag.string(), bool(), int()
等flag.***()
方法,該種方式返回乙個相應的指標:
brokers := flag.string("broker", "127.0.0.1:9092", "help message for broker")
2) 通過flag.***var()
方法將flag繫結到乙個變數,該種方式返回值型別,如:
flag.strin**ar(&brokers, "broker", "127.0.0.1:9092", "help message for broker")
3) 通過flag.var()
繫結自定義型別,自定義型別需要實現value介面(receives必須為指標),如
flag.var(&brokers, "broker", "help message for broker")
解析:呼叫flag.parse()
解析命令列引數到定義的flag
flag.parse()
其他:通過flag.args()
,flag.arg(i)
來獲取非 flag 命令列引數
package main
import (
"flag"
"fmt"
"strconv"
)type percentage float32
func (p *percentage) set(s string) error
func (p *percentage) string() string
func main()
執行結果:
golang之flag包詳解
在golang中有很多方法來處理命令列引數,簡單情況下可以不使用任何庫,直接使用os.args 但是golang標準庫提供了flag包來處理命令列引數 還有第三方提供的處理命令列引數的庫cobra cli。flag包繫結解析引數有三種定義方式 flag.例如 flag.int,flag.string...
快速理解golang標準庫flag包
flag包實現了命令列引數的解析 基本分為三步 package main import flag fmt os var 1.使用flag.string bool int 等函式註冊flag,解析後儲存到bool,int,string型別的指標 n flag.int n 1,print times s...
golang中的標準庫flag
go語言內建的flag包實現了命令列引數的解析,flag包使得開發命令列工具更為簡單。如果你只是簡單的想要獲取命令列引數,可以像下面的 示例一樣使用os.args來獲取命令列引數。func main 執行命令 go run main.go host 127.0.0.1 port 8080 輸出結果 ...