?
This document uses PHP Chinese website manual Release
import "flag"
概述
索引
例子
Flag 包實(shí)現(xiàn)了命令行標(biāo)志解析。
用法:
使用 flag.String(),Bool(),Int() 等定義標(biāo)志。
這聲明了一個(gè)整型 flag,-flagname,都存儲(chǔ)在指針 ip 中,類型為 *int 。
import "flag"var ip = flag.Int("flagname", 1234, "help message for flagname")
如果你喜歡,你可以使用 Var() 函數(shù)將標(biāo)志綁定到一個(gè)變量。
var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")}
或者,您可以創(chuàng)建滿足 Value 接口(使用指針接收器)的自定義標(biāo)志,并將它們耦合以標(biāo)記解析
flag.Var(&flagVal, "name", "help message for flagname")
對(duì)于這樣的標(biāo)志,默認(rèn)值只是變量的初始值。
所有標(biāo)志定義后,調(diào)用
flag.Parse()
來(lái)將命令行解析為定義的標(biāo)志。
標(biāo)志可以直接使用。如果你自己使用標(biāo)志,它們都是指針; 如果你綁定到變量,它們就是值。
fmt.Println("ip has value ", *ip)fmt.Println("flagvar has value ", flagvar)
解析后,標(biāo)志后面的參數(shù)可用作切片 flag.Args() 或單獨(dú)作為 flag.Arg(i)。參數(shù)從 0 到 flag.NArg()- 1 索引。
命令行標(biāo)志語(yǔ)法:
-flag-flag=x-flag x // 僅限非布爾標(biāo)志
可以使用一個(gè)或兩個(gè)減號(hào);它們是等價(jià)的。由于命令的含義,最后一種形式不允許用于布爾標(biāo)志
cmd -x *
如果有一個(gè)名為 0,false 等的文件,它將會(huì)改變。你必須使用 -flag = false 來(lái)關(guān)閉布爾標(biāo)志。
標(biāo)志解析在第一個(gè)非標(biāo)志參數(shù)(“ - ”是非標(biāo)志參數(shù))之前停止,或者在終止符“ - ”之后停止。
整數(shù)標(biāo)志接受 1234,0664,0x1234 并且可能是負(fù)數(shù)。布爾標(biāo)志可能是:
1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False
持續(xù)時(shí)間標(biāo)志接受對(duì) time.ParseDuration 有效的任何輸入。
默認(rèn)的一組命令行標(biāo)志由頂層函數(shù)控制。FlagSet 類型允許您定義獨(dú)立的標(biāo)志集,例如在命令行界面中實(shí)現(xiàn)子命令。FlagSet 的方法類似于命令行標(biāo)志集的頂層函數(shù)。
// 這些示例演示了對(duì)標(biāo)志包的更復(fù)雜的使用。package mainimport ("errors""flag""fmt""strings""time")// 示例1:名為“species”的單個(gè)字符串標(biāo)志,默認(rèn)值為“gopher”。var species = flag.String("species", "gopher", "the species we are studying")// 示例2:共享變量的兩個(gè)標(biāo)志,因此我們可以使用速記。// 初始化的順序是未定義的,因此請(qǐng)確保兩者都使用// 相同的默認(rèn)值。 必須使用init函數(shù)設(shè)置它們。var gopherType string func init() {const ( defaultGopher = "pocket" usage = "the variety of gopher") flag.StringVar(&gopherType, "gopher_type", defaultGopher, usage) flag.StringVar(&gopherType, "g", defaultGopher, usage+" (shorthand)")}// 示例3:用戶定義的標(biāo)志類型,持續(xù)時(shí)間片。type interval []time.Duration// String是格式化標(biāo)志值的方法,是flag.Value接口的一部分。// String方法的輸出將用于診斷。func (i *interval) String() string {return fmt.Sprint(*i)}// Set是設(shè)置標(biāo)志值的方法,flag.Value接口的一部分。// Set的參數(shù)是要解析以設(shè)置標(biāo)志的字符串。// 這是一個(gè)以逗號(hào)分隔的列表,因此我們將其拆分。func (i *interval) Set(value string) error {// 如果我們想允許多次設(shè)置標(biāo)志,// 累積值,我們將刪除此if語(yǔ)句。// 這將允許諸如此類的用法// -deltaT 10s -deltaT 15s// 和其他組合。if len(*i) > 0 {return errors.New("interval flag already set")}for _, dt := range strings.Split(value, ",") { duration, err := time.ParseDuration(dt)if err != nil {return err}*i = append(*i, duration)}return nil}// 定義一個(gè)標(biāo)志來(lái)累積持續(xù)時(shí)間。 因?yàn)樗刑厥獾念愋停?/ 我們需要使用Var函數(shù),因此在期間創(chuàng)建標(biāo)志// init。var intervalFlag interval func init() {// 將命令行標(biāo)志綁定到intervalFlag變量和// 設(shè)置用法消息。 flag.Var(&intervalFlag, "deltaT", "comma-separated list of intervals to use between events")}func main() {// 所有有趣的部分都是上面聲明的變量,但是// 要使標(biāo)志包能夠看到那里定義的標(biāo)志,就必須這樣做// 執(zhí)行,通常在main(不是init!)的開頭執(zhí)行:// flag.Parse()// 我們不在這里運(yùn)行它,因?yàn)檫@不是主要功能//測(cè)試套件已經(jīng)解析了標(biāo)志。}
Variables
func Arg(i int) string
func Args() []string
func Bool(name string, value bool, usage string) *bool
func BoolVar(p *bool, name string, value bool, usage string)
func Duration(name string, value time.Duration, usage string) *time.Duration
func DurationVar(p *time.Duration, name string, value time.Duration, usage string)
func Float64(name string, value float64, usage string) *float64
func Float64Var(p *float64, name string, value float64, usage string)
func Int(name string, value int, usage string) *int
func Int64(name string, value int64, usage string) *int64
func Int64Var(p *int64, name string, value int64, usage string)
func IntVar(p *int, name string, value int, usage string)
func NArg() int
func NFlag() int
func Parse()
func Parsed() bool
func PrintDefaults()
func Set(name, value string) error
func String(name string, value string, usage string) *string
func StringVar(p *string, name string, value string, usage string)
func Uint(name string, value uint, usage string) *uint
func Uint64(name string, value uint64, usage string) *uint64
func Uint64Var(p *uint64, name string, value uint64, usage string)
func UintVar(p *uint, name string, value uint, usage string)
func UnquoteUsage(flag *Flag) (name string, usage string)
func Var(value Value, name string, usage string)
func Visit(fn func(*Flag))
func VisitAll(fn func(*Flag))
type ErrorHandling
類型標(biāo)志
func Lookup(name string) *Flag
type FlagSet
func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet
func (f *FlagSet) Arg(i int) string
func (f *FlagSet) Args() []string
func (f *FlagSet) Bool(name string, value bool, usage string) *bool
func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string)
func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration
func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string)
func (f *FlagSet) Float64(name string, value float64, usage string) *float64
func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string)
func (f *FlagSet) Init(name string, errorHandling ErrorHandling)
func (f *FlagSet) Int(name string, value int, usage string) *int
func (f *FlagSet) Int64(name string, value int64, usage string) *int64
func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string)
func (f *FlagSet) IntVar(p *int, name string, value int, usage string)
func (f *FlagSet) Lookup(name string) *Flag
func (f *FlagSet) NArg() int
func (f *FlagSet) NFlag() int
func (f *FlagSet) Parse(arguments []string) error
func (f *FlagSet) Parsed() bool
func (f *FlagSet) PrintDefaults()
func (f *FlagSet) Set(name, value string) error
func (f *FlagSet) SetOutput(output io.Writer)
func (f *FlagSet) String(name string, value string, usage string) *string
func (f *FlagSet) StringVar(p *string, name string, value string, usage string)
func (f *FlagSet) Uint(name string, value uint, usage string) *uint
func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64
func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string)
func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string)
func (f *FlagSet) Var(value Value, name string, usage string)
func (f *FlagSet) Visit(fn func(*Flag))
func (f *FlagSet) VisitAll(fn func(*Flag))
type Getter
type Value
包
flag.go
CommandLine 是從 os.Args 解析的默認(rèn)命令行標(biāo)志集。頂級(jí)函數(shù)(如 BoolVar,Arg 等)是 CommandLine方法的包裝器。
var CommandLine = NewFlagSet(os.Args[0], ExitOnError)
如果調(diào)用了 -help 或 -h 標(biāo)志但沒有定義這樣的標(biāo)志,ErrHelp 是返回的錯(cuò)誤。
var ErrHelp = errors.New("flag: help requested")
用法向標(biāo)準(zhǔn)錯(cuò)誤輸出記錄所有定義的命令行標(biāo)志的用法消息。它在解析標(biāo)志時(shí)發(fā)生錯(cuò)誤時(shí)被調(diào)用。該函數(shù)是一個(gè)可以更改為指向自定義函數(shù)的變量。默認(rèn)情況下,它打印一個(gè)簡(jiǎn)單的標(biāo)題并調(diào)用 PrintDefaults ; 有關(guān)輸出格式以及如何控制它的詳細(xì)信息,請(qǐng)參閱 PrintDefaults 的文檔。
var Usage = func() { fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) PrintDefaults()}
func Arg(i int) string
Arg 返回第 i 個(gè)命令行參數(shù)。Arg(0)是標(biāo)志處理后的第一個(gè)剩余參數(shù)。如果請(qǐng)求的元素不存在,則 Arg 返回一個(gè)空字符串。
func Args() []string
Args 返回非標(biāo)志命令行參數(shù)。
func Bool(name string, value bool, usage string) *bool
Bool 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的布爾標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 bool 變量的地址。
func BoolVar(p *bool, name string, value bool, usage string)
BoolVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的布爾標(biāo)志。參數(shù) p 指向一個(gè)存儲(chǔ)標(biāo)志值的 bool 變量。
func Duration(name string, value time.Duration, usage string) *time.Duration
持續(xù)時(shí)間定義了一個(gè)帶指定名稱,缺省值和用法字符串的 time.Duration 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 time.Duration 變量的地址。該標(biāo)志接受 time.ParseDuration 可接受的值。
func DurationVar(p *time.Duration, name string, value time.Duration, usage string)
DurationVar 定義了一個(gè)具有指定名稱,缺省值和用法字符串的 time.Duration 標(biāo)志。參數(shù) p 指向一個(gè)用于存儲(chǔ)標(biāo)志值的 time.Duration 變量。該標(biāo)志接受 time.ParseDuration 可接受的值。
func Float64(name string, value float64, usage string) *float64
Float64 定義了一個(gè)帶有指定名稱,缺省值和用法字符串的 float64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 float64 變量的地址。
func Float64Var(p *float64, name string, value float64, usage string)
Float64Var 定義了一個(gè)帶有指定名稱,缺省值和用法字符串的 float64 標(biāo)志。參數(shù) p 指向一個(gè) float64 變量,用于存儲(chǔ)標(biāo)志的值。
func Int(name string, value int, usage string) *int
Int 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 int 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 int 變量的地址。
func Int64(name string, value int64, usage string) *int64
Int64 定義了一個(gè)具有指定名稱,缺省值和用法字符串的 int64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 int64 變量的地址。
func Int64Var(p *int64, name string, value int64, usage string)
Int64Var 定義了一個(gè)帶有指定名稱,默認(rèn)值和用法字符串的 int64 標(biāo)志。參數(shù) p 指向一個(gè) int64 變量,用于存儲(chǔ)標(biāo)志的值。
func IntVar(p *int, name string, value int, usage string)
IntVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 int 標(biāo)志。參數(shù) p 指向一個(gè) int 變量,用于存儲(chǔ)標(biāo)志的值。
func NArg() int
NArg 是標(biāo)志處理后剩余的參數(shù)數(shù)量。
func NFlag() int
NFlag 返回已設(shè)置的命令行標(biāo)志的數(shù)量。
func Parse()
解析解析 os.Args1:中的命令行標(biāo)志。必須在定義了所有標(biāo)志之后并且在程序訪問標(biāo)志之前調(diào)用。
func Parsed() bool
Parsed 報(bào)告命令行標(biāo)志是否已被解析。
func PrintDefaults()
除非另行配置,否則 PrintDefaults 會(huì)打印標(biāo)準(zhǔn)錯(cuò)誤,顯示所有已定義的命令行標(biāo)志的默認(rèn)設(shè)置。對(duì)于整數(shù)值標(biāo)志 x,默認(rèn)輸出具有該形式
-x int usage-message-for-x (default 7)
除了帶有單字節(jié)名稱的布爾標(biāo)志之外,用法消息將顯示在單獨(dú)的行上。對(duì)于 bool 標(biāo)志,類型被省略,并且如果標(biāo)志名稱是一個(gè)字節(jié),則使用消息出現(xiàn)在同一行上。如果默認(rèn)值是類型的零值,則省略括號(hào)默認(rèn)值。列出的類型(這里是 int)可以通過(guò)在標(biāo)志的使用字符串中放置一個(gè)反引號(hào)的名稱來(lái)更改; 消息中的第一個(gè)這樣的項(xiàng)目被視為在消息中顯示的參數(shù)名稱,并且在顯示時(shí)從消息中除去后面的引號(hào)。例如,給出
flag.String("I", "", "search `directory` for include files")
輸出將是
-I directory search directory for include files.
func Set(name, value string) error
Set 設(shè)置命名的命令行標(biāo)志的值。
func String(name string, value string, usage string) *string
字符串定義了一個(gè)具有指定名稱,缺省值和用法字符串的字符串標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的字符串變量的地址。
func StringVar(p *string, name string, value string, usage string)
StringVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的字符串標(biāo)志。參數(shù) p 指向一個(gè)字符串變量,用于存儲(chǔ)標(biāo)志的值。
func Uint(name string, value uint, usage string) *uint
Uint 定義一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 uint 變量的地址。
func Uint64(name string, value uint64, usage string) *uint64
Uint64 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 uint64 變量的地址。
func Uint64Var(p *uint64, name string, value uint64, usage string)
Uint64Var 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint64 標(biāo)志。參數(shù) p 指向一個(gè) uint64 變量,用于存儲(chǔ)標(biāo)志的值。
func UintVar(p *uint, name string, value uint, usage string)
UintVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint 標(biāo)志。參數(shù) p 指向一個(gè)存儲(chǔ)標(biāo)志值的 uint 變量。
func UnquoteUsage(flag *Flag) (name string, usage string)
UnquoteUsage 從標(biāo)志的用法字符串中提取一個(gè)反引號(hào)的名稱,并返回它和未加引號(hào)的用法。給定“ name
顯示”它返回(“名稱”,“顯示的名稱”)。如果沒有后引號(hào),則該名稱是對(duì)標(biāo)志值類型的合理猜測(cè),如果標(biāo)志為布爾值,則為空字符串。
func Var(value Value, name string, usage string)
Var 定義了一個(gè)具有指定名稱和用法字符串的標(biāo)志。標(biāo)志的類型和值由 Value 類型的第一個(gè)參數(shù)表示,它通常包含 Value 的用戶定義實(shí)現(xiàn)。例如,調(diào)用者可以創(chuàng)建一個(gè)標(biāo)志,通過(guò)為切片提供 Value 的方法來(lái)將逗號(hào)分隔的字符串轉(zhuǎn)換為一段字符串; 特別是 Set 會(huì)將逗號(hào)分隔的字符串分解成片。
func Visit(fn func(*Flag))
Visit 按照字典順序訪問命令行標(biāo)志,為每個(gè)標(biāo)志調(diào)用 fn 。它只訪問已設(shè)置的標(biāo)志。
func VisitAll(fn func(*Flag))
VisitAll 按照字典順序訪問命令行標(biāo)志,為每個(gè)命令調(diào)用 fn 。它訪問所有的標(biāo)志,甚至沒有設(shè)置。
ErrorHandling 定義了解析失敗時(shí) FlagSet.Parse 的行為。
type ErrorHandling int
如果解析失敗,這些常量會(huì)導(dǎo)致 FlagSet.Parse 的行為與所述相同。
const ( ContinueOnError ErrorHandling = iota // Return a descriptive error. ExitOnError // Call os.Exit(2). PanicOnError // Call panic with a descriptive error.)
一個(gè)標(biāo)志表示一個(gè)標(biāo)志的狀態(tài)。
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}
func Lookup(name string) *Flag
Lookup 返回指定命令行標(biāo)志的標(biāo)志結(jié)構(gòu),如果不存在則返回 nil 。
FlagSet 表示一組定義的標(biāo)志。FlagSet 的零值沒有名稱,并且具有 ContinueOnError 錯(cuò)誤處理。
type FlagSet struct { // Usage is the function called when an error occurs while parsing flags. // The field is a function (not a method) that may be changed to point to // a custom error handler. Usage func() // contains filtered or unexported fields}
func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet
NewFlagSet 使用指定的名稱和錯(cuò)誤處理屬性返回一個(gè)新的空標(biāo)志集。
func (f *FlagSet) Arg(i int) string
Arg 返回第 i 個(gè)參數(shù)。Arg(0)是標(biāo)志處理后的第一個(gè)剩余參數(shù)。如果請(qǐng)求的元素不存在,則 Arg 返回一個(gè)空字符串。
func (f *FlagSet) Args() []string
Args 返回非標(biāo)志參數(shù)。
func (f *FlagSet) Bool(name string, value bool, usage string) *bool
Bool 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的布爾標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 bool 變量的地址。
func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string)
BoolVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的布爾標(biāo)志。參數(shù) p 指向一個(gè)存儲(chǔ)標(biāo)志值的 bool 變量。
func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration
持續(xù)時(shí)間定義了一個(gè)帶指定名稱,缺省值和用法字符串的 time.Duration 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 time.Duration 變量的地址。該標(biāo)志接受 time.ParseDuration 可接受的值。
func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string)
DurationVar 定義了一個(gè)具有指定名稱,缺省值和用法字符串的 time.Duration 標(biāo)志。參數(shù) p 指向一個(gè)用于存儲(chǔ)標(biāo)志值的 time.Duration 變量。該標(biāo)志接受 time.ParseDuration 可接受的值。
func (f *FlagSet) Float64(name string, value float64, usage string) *float64
Float64 定義了一個(gè)帶有指定名稱,缺省值和用法字符串的 float64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 float64 變量的地址。
func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string)
Float64Var 定義了一個(gè)帶有指定名稱,缺省值和用法字符串的 float64 標(biāo)志。參數(shù) p 指向一個(gè) float64 變量,用于存儲(chǔ)標(biāo)志的值。
func (f *FlagSet) Init(name string, errorHandling ErrorHandling)
Init 為標(biāo)志集設(shè)置名稱和錯(cuò)誤處理屬性。默認(rèn)情況下,zero FlagSet 使用空名稱和 ContinueOnError 錯(cuò)誤處理策略。
func (f *FlagSet) Int(name string, value int, usage string) *int
Int 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 int 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 int 變量的地址。
func (f *FlagSet) Int64(name string, value int64, usage string) *int64
Int64 定義了一個(gè)具有指定名稱,缺省值和用法字符串的 int64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 int64 變量的地址。
func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string)
Int64Var 定義了一個(gè)帶有指定名稱,默認(rèn)值和用法字符串的 int64 標(biāo)志。參數(shù) p 指向一個(gè) int64 變量,用于存儲(chǔ)標(biāo)志的值。
func (f *FlagSet) IntVar(p *int, name string, value int, usage string)
IntVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 int 標(biāo)志。參數(shù) p 指向一個(gè) int 變量,用于存儲(chǔ)標(biāo)志的值。
func (f *FlagSet) Lookup(name string) *Flag
Lookup 返回指定標(biāo)志的標(biāo)志結(jié)構(gòu),如果不存在則返回 nil 。
func (f *FlagSet) NArg() int
NArg 是標(biāo)志處理后剩余的參數(shù)數(shù)量。
func (f *FlagSet) NFlag() int
NFlag 返回已設(shè)置的標(biāo)志數(shù)量。
func (f *FlagSet) Parse(arguments []string) error
解析解析參數(shù)列表中的標(biāo)志定義,該列表不應(yīng)包含命令名稱。必須在 FlagSet 中的所有標(biāo)志被定義之后且在程序訪問標(biāo)志之前調(diào)用。如果設(shè)置了 -help 或 -h 但未定義,則返回值為 ErrHelp 。
func (f *FlagSet) Parsed() bool
Parsed 報(bào)告是否調(diào)用了f.Parse。
func (f *FlagSet) PrintDefaults()
PrintDefaults 將標(biāo)準(zhǔn)錯(cuò)誤打印到集合中所有已定義的命令行標(biāo)志的默認(rèn)值。有關(guān)更多信息,請(qǐng)參閱全局函數(shù) PrintDefaults 的文檔。
func (f *FlagSet) Set(name, value string) error
Set 設(shè)置指定標(biāo)志的值。
func (f *FlagSet) SetOutput(output io.Writer)
SetOutput 設(shè)置使用和錯(cuò)誤消息的目的地。如果輸出為零,則使用 os.Stderr 。
func (f *FlagSet) String(name string, value string, usage string) *string
字符串定義了一個(gè)具有指定名稱,缺省值和用法字符串的字符串標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的字符串變量的地址。
func (f *FlagSet) StringVar(p *string, name string, value string, usage string)
StringVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的字符串標(biāo)志。參數(shù) p 指向一個(gè)字符串變量,用于存儲(chǔ)標(biāo)志的值。
func (f *FlagSet) Uint(name string, value uint, usage string) *uint
Uint 定義一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 uint 變量的地址。
func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64
Uint64 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint64 標(biāo)志。返回值是存儲(chǔ)標(biāo)志值的 uint64 變量的地址。
func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string)
Uint64Var 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint64 標(biāo)志。參數(shù) p 指向一個(gè) uint64 變量,用于存儲(chǔ)標(biāo)志的值。
func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string)
UintVar 定義了一個(gè)具有指定名稱,默認(rèn)值和用法字符串的 uint 標(biāo)志。參數(shù) p 指向一個(gè)存儲(chǔ)標(biāo)志值的 uint 變量。
func (f *FlagSet) Var(value Value, name string, usage string)
Var 定義了一個(gè)具有指定名稱和用法字符串的標(biāo)志。標(biāo)志的類型和值由 Value 類型的第一個(gè)參數(shù)表示,它通常包含 Value 的用戶定義實(shí)現(xiàn)。例如,調(diào)用者可以創(chuàng)建一個(gè)標(biāo)志,通過(guò)為切片提供 Value 的方法來(lái)將逗號(hào)分隔的字符串轉(zhuǎn)換為一段字符串;特別是 Set 會(huì)將逗號(hào)分隔的字符串分解成片。
func (f *FlagSet) Visit(fn func(*Flag))
Visit 按照字典順序訪問標(biāo)志,為每個(gè)標(biāo)志調(diào)用 fn 。它只訪問已設(shè)置的標(biāo)志。
func (f *FlagSet) VisitAll(fn func(*Flag))
VisitAll 按字典順序訪問標(biāo)志,為每個(gè)標(biāo)志調(diào)用 fn 。它訪問所有的標(biāo)志,甚至沒有設(shè)置。
Getter 是一個(gè)接口,允許檢索值的內(nèi)容。它包裝了 Value 接口,而不是其中的一部分,因?yàn)樗霈F(xiàn)在 Go 1 及其兼容性規(guī)則之后。此包提供的所有值類型均滿足 Getter 接口。
type Getter interface { Value Get() interface{}}
值是存儲(chǔ)在標(biāo)志中的動(dòng)態(tài)值的接口。(默認(rèn)值表示為一個(gè)字符串。)
如果值的 IsBoolFlag() bool 方法返回 true,則命令行解析器將使 -name 等同于 -name = true,而不是使用下一個(gè)命令行參數(shù)。
對(duì)于每個(gè)存在的標(biāo)志,集合都以命令行順序調(diào)用一次。標(biāo)志包可以用一個(gè)零值接收者(例如零指針)調(diào)用 String 方法。
type Value interface { String() string Set(string) error}