flag - skynocover/Wiki-for-GoLang GitHub Wiki
flag
package main
import (
"fmt"
"flag"
)
var (
intflag int
boolflag bool
stringflag string
var operator *string
)
func init() {
flag.IntVar(&intflag, "intflag", 0, "int flag value") //輸入的參數,flag名,預設值,提示值
flag.BoolVar(&boolflag, "boolflag", false, "bool flag value")
flag.StringVar(&stringflag, "stringflag", "default", "string flag value")
flag.StringVar(&stringflag, "s", "default", "string flag value") //用設置相同的flag名來設定短command
operator = flag.String("o", "+", "the math `operator`")
fmt.Printfln(operator) // 0xc00001a0b8
fmt.Printfln(*operator) // +
}
func main() {
flag.Parse() //使用parse來初始化已經定義的flag
fmt.Println("int flag:", intflag)
fmt.Println("bool flag:", boolflag)
fmt.Println("string flag:", stringflag)
}
/*
int flag: 12
bool flag: true
string flag: test
*/
基本用法
./main.exe -intflag 12 -boolflag 1
int flag: 12
bool flag: true
string flag: default
- 指定方式
-name //只支援bool
-name=Jack
-name Jack //不支援bool
--name=Jack
--name Jack //不支援bool
function
- PrintDefaults
用來展示設定的flag
fmt.Fprintf(os.Stderr, "Usage: math [options] [root]\n")
fmt.Fprintf(os.Stderr, " Currently, there are four URI routes could be used:\n")
flag.PrintDefaults()
- Arg(s)
用來展示未指定的輸出
math -o "*" -p=true 3 4
flag.Arg(0) // get 3
flag.Arg(1) // get 4
math -o "*" -p=true 3 4
len(flag.Args()) // get 2
flag.Args()[0] // get 3
補充
go run main.go -intflag 12 -boolflag 1
使用go run 並輸入參數
./main.exe -h
使用-h來取得說明
./main.exe noflag -intflag 12
遇到沒有設定的noflag就會停止,因此-intflag不會執行