directory search
archive archive/tar archive/zip bufio bufio(缓存) builtin builtin(内置包) bytes bytes(包字节) compress compress/bzip2(压缩/bzip2) compress/flate(压缩/flate) compress/gzip(压缩/gzip) compress/lzw(压缩/lzw) compress/zlib(压缩/zlib) container container/heap(容器数据结构heap) container/list(容器数据结构list) container/ring(容器数据结构ring) context context(上下文) crypto crypto(加密) crypto/aes(加密/aes) crypto/cipher(加密/cipher) crypto/des(加密/des) crypto/dsa(加密/dsa) crypto/ecdsa(加密/ecdsa) crypto/elliptic(加密/elliptic) crypto/hmac(加密/hmac) crypto/md5(加密/md5) crypto/rand(加密/rand) crypto/rc4(加密/rc4) crypto/rsa(加密/rsa) crypto/sha1(加密/sha1) crypto/sha256(加密/sha256) crypto/sha512(加密/sha512) crypto/subtle(加密/subtle) crypto/tls(加密/tls) crypto/x509(加密/x509) crypto/x509/pkix(加密/x509/pkix) database database/sql(数据库/sql) database/sql/driver(数据库/sql/driver) debug debug/dwarf(调试/dwarf) debug/elf(调试/elf) debug/gosym(调试/gosym) debug/macho(调试/macho) debug/pe(调试/pe) debug/plan9obj(调试/plan9obj) encoding encoding(编码) encoding/ascii85(编码/ascii85) encoding/asn1(编码/asn1) encoding/base32(编码/base32) encoding/base64(编码/base64) encoding/binary(编码/binary) encoding/csv(编码/csv) encoding/gob(编码/gob) encoding/hex(编码/hex) encoding/json(编码/json) encoding/pem(编码/pem) encoding/xml(编码/xml) errors errors(错误) expvar expvar flag flag(命令行参数解析flag包) fmt fmt go go/ast(抽象语法树) go/build go/constant(常量) go/doc(文档) go/format(格式) go/importer go/parser go/printer go/scanner(扫描仪) go/token(令牌) go/types(类型) hash hash(散列) hash/adler32 hash/crc32 hash/crc64 hash/fnv html html html/template(模板) image image(图像) image/color(颜色) image/color/palette(调色板) image/draw(绘图) image/gif image/jpeg image/png index index/suffixarray io io io/ioutil log log log/syslog(日志系统) math math math/big math/big math/bits math/bits math/cmplx math/cmplx math/rand math/rand mime mime mime/multipart(多部分) mime/quotedprintable net net net/http net/http net/http/cgi net/http/cookiejar net/http/fcgi net/http/httptest net/http/httptrace net/http/httputil net/http/internal net/http/pprof net/mail net/mail net/rpc net/rpc net/rpc/jsonrpc net/smtp net/smtp net/textproto net/textproto net/url net/url os os os/exec os/signal os/user path path path/filepath(文件路径) plugin plugin(插件) reflect reflect(反射) regexp regexp(正则表达式) regexp/syntax runtime runtime(运行时) runtime/debug(调试) runtime/internal/sys runtime/pprof runtime/race(竞争) runtime/trace(执行追踪器) sort sort(排序算法) strconv strconv(转换) strings strings(字符串) sync sync(同步) sync/atomic(原子操作) syscall syscall(系统调用) testing testing(测试) testing/iotest testing/quick text text/scanner(扫描文本) text/tabwriter text/template(定义模板) text/template/parse time time(时间戳) unicode unicode unicode/utf16 unicode/utf8 unsafe unsafe
characters

  • import "flag"

  • 概述

  • 索引

  • 例子

概述

Flag 包实现了命令行标志解析。

用法:

使用 flag.String(),Bool(),Int() 等定义标志。

这声明了一个整型 flag,-flagname,都存储在指针 ip 中,类型为 *int 。

import "flag"var ip = flag.Int("flagname", 1234, "help message for flagname")

如果你喜欢,你可以使用 Var() 函数将标志绑定到一个变量。

var flagvar int
func init() {
	flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")}

或者,您可以创建满足 Value 接口(使用指针接收器)的自定义标志,并将它们耦合以标记解析

flag.Var(&flagVal, "name", "help message for flagname")

对于这样的标志,默认值只是变量的初始值。

所有标志定义后,调用

flag.Parse()

来将命令行解析为定义的标志。

标志可以直接使用。如果你自己使用标志,它们都是指针; 如果你绑定到变量,它们就是值。

fmt.Println("ip has value ", *ip)fmt.Println("flagvar has value ", flagvar)

解析后,标志后面的参数可用作切片 flag.Args() 或单独作为 flag.Arg(i)。参数从 0 到 flag.NArg()- 1 索引。

命令行标志语法:

-flag-flag=x-flag x  // 仅限非布尔标志

可以使用一个或两个减号;它们是等价的。由于命令的含义,最后一种形式不允许用于布尔标志

cmd -x *

如果有一个名为 0,false 等的文件,它将会改变。你必须使用 -flag = false 来关闭布尔标志。

标志解析在第一个非标志参数(“ - ”是非标志参数)之前停止,或者在终止符“ - ”之后停止。

整数标志接受 1234,0664,0x1234 并且可能是负数。布尔标志可能是:

1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False

持续时间标志接受对 time.ParseDuration 有效的任何输入。

默认的一组命令行标志由顶层函数控制。FlagSet 类型允许您定义独立的标志集,例如在命令行界面中实现子命令。FlagSet 的方法类似于命令行标志集的顶层函数。

// 这些示例演示了对标志包的更复杂的使用。package mainimport ("errors""flag""fmt""strings""time")// 示例1:名为“species”的单个字符串标志,默认值为“gopher”。var species = flag.String("species", "gopher", "the species we are studying")// 示例2:共享变量的两个标志,因此我们可以使用速记。// 初始化的顺序是未定义的,因此请确保两者都使用// 相同的默认值。 必须使用init函数设置它们。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:用户定义的标志类型,持续时间片。type interval []time.Duration// String是格式化标志值的方法,是flag.Value接口的一部分。// String方法的输出将用于诊断。func (i *interval) String() string {return fmt.Sprint(*i)}// Set是设置标志值的方法,flag.Value接口的一部分。// Set的参数是要解析以设置标志的字符串。// 这是一个以逗号分隔的列表,因此我们将其拆分。func (i *interval) Set(value string) error {// 如果我们想允许多次设置标志,// 累积值,我们将删除此if语句。// 这将允许诸如此类的用法//	-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}// 定义一个标志来累积持续时间。 因为它有特殊的类型,// 我们需要使用Var函数,因此在期间创建标志// init。var intervalFlag interval

func init() {// 将命令行标志绑定到intervalFlag变量和// 设置用法消息。
	flag.Var(&intervalFlag, "deltaT", "comma-separated list of intervals to use between events")}func main() {// 所有有趣的部分都是上面声明的变量,但是// 要使标志包能够看到那里定义的标志,就必须这样做// 执行,通常在main(不是init!)的开头执行://	flag.Parse()// 我们不在这里运行它,因为这不是主要功能//测试套件已经解析了标志。}

索引

  • 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

  • 类型标志

  • 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 解析的默认命令行标志集。顶级函数(如 BoolVar,Arg 等)是 CommandLine方法的包装器。

var CommandLine = NewFlagSet(os.Args[0], ExitOnError)

如果调用了 -help 或 -h 标志但没有定义这样的标志,ErrHelp 是返回的错误。

var ErrHelp = errors.New("flag: help requested")

用法向标准错误输出记录所有定义的命令行标志的用法消息。它在解析标志时发生错误时被调用。该函数是一个可以更改为指向自定义函数的变量。默认情况下,它打印一个简单的标题并调用 PrintDefaults ; 有关输出格式以及如何控制它的详细信息,请参阅 PrintDefaults 的文档。

var Usage = func() {
        fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])        PrintDefaults()}

func Arg

func Arg(i int) string

Arg 返回第 i 个命令行参数。Arg(0)是标志处理后的第一个剩余参数。如果请求的元素不存在,则 Arg 返回一个空字符串。

func Args

func Args() []string

Args 返回非标志命令行参数。

func Bool

func Bool(name string, value bool, usage string) *bool

Bool 定义了一个具有指定名称,默认值和用法字符串的布尔标志。返回值是存储标志值的 bool 变量的地址。

func BoolVar

func BoolVar(p *bool, name string, value bool, usage string)

BoolVar 定义了一个具有指定名称,默认值和用法字符串的布尔标志。参数 p 指向一个存储标志值的 bool 变量。

func Duration

func Duration(name string, value time.Duration, usage string) *time.Duration

持续时间定义了一个带指定名称,缺省值和用法字符串的 time.Duration 标志。返回值是存储标志值的 time.Duration 变量的地址。该标志接受 time.ParseDuration 可接受的值。

func DurationVar

func DurationVar(p *time.Duration, name string, value time.Duration, usage string)

DurationVar 定义了一个具有指定名称,缺省值和用法字符串的 time.Duration 标志。参数 p 指向一个用于存储标志值的 time.Duration 变量。该标志接受 time.ParseDuration 可接受的值。

func Float64

func Float64(name string, value float64, usage string) *float64

Float64 定义了一个带有指定名称,缺省值和用法字符串的 float64 标志。返回值是存储标志值的 float64 变量的地址。

func Float64Var

func Float64Var(p *float64, name string, value float64, usage string)

Float64Var 定义了一个带有指定名称,缺省值和用法字符串的 float64 标志。参数 p 指向一个 float64 变量,用于存储标志的值。

func Int

func Int(name string, value int, usage string) *int

Int 定义了一个具有指定名称,默认值和用法字符串的 int 标志。返回值是存储标志值的 int 变量的地址。

func Int64

func Int64(name string, value int64, usage string) *int64

Int64 定义了一个具有指定名称,缺省值和用法字符串的 int64 标志。返回值是存储标志值的 int64 变量的地址。

func Int64Var

func Int64Var(p *int64, name string, value int64, usage string)

Int64Var 定义了一个带有指定名称,默认值和用法字符串的 int64 标志。参数 p 指向一个 int64 变量,用于存储标志的值。

func IntVar

func IntVar(p *int, name string, value int, usage string)

IntVar 定义了一个具有指定名称,默认值和用法字符串的 int 标志。参数 p 指向一个 int 变量,用于存储标志的值。

func NArg

func NArg() int

NArg 是标志处理后剩余的参数数量。

func NFlag

func NFlag() int

NFlag 返回已设置的命令行标志的数量。

func Parse

func Parse()

解析解析 os.Args1:中的命令行标志。必须在定义了所有标志之后并且在程序访问标志之前调用。

func Parsed

func Parsed() bool

Parsed 报告命令行标志是否已被解析。

func PrintDefaults

func PrintDefaults()

除非另行配置,否则 PrintDefaults 会打印标准错误,显示所有已定义的命令行标志的默认设置。对于整数值标志 x,默认输出具有该形式

-x int
	usage-message-for-x (default 7)

除了带有单字节名称的布尔标志之外,用法消息将显示在单独的行上。对于 bool 标志,类型被省略,并且如果标志名称是一个字节,则使用消息出现在同一行上。如果默认值是类型的零值,则省略括号默认值。列出的类型(这里是 int)可以通过在标志的使用字符串中放置一个反引号的名称来更改; 消息中的第一个这样的项目被视为在消息中显示的参数名称,并且在显示时从消息中除去后面的引号。例如,给出

flag.String("I", "", "search `directory` for include files")

输出将是

-I directory
	search directory for include files.

func Set

func Set(name, value string) error

Set 设置命名的命令行标志的值。

func String

func String(name string, value string, usage string) *string

字符串定义了一个具有指定名称,缺省值和用法字符串的字符串标志。返回值是存储标志值的字符串变量的地址。

func StringVar

func StringVar(p *string, name string, value string, usage string)

StringVar 定义了一个具有指定名称,默认值和用法字符串的字符串标志。参数 p 指向一个字符串变量,用于存储标志的值。

func Uint

func Uint(name string, value uint, usage string) *uint

Uint 定义一个具有指定名称,默认值和用法字符串的 uint 标志。返回值是存储标志值的 uint 变量的地址。

func Uint64

func Uint64(name string, value uint64, usage string) *uint64

Uint64 定义了一个具有指定名称,默认值和用法字符串的 uint64 标志。返回值是存储标志值的 uint64 变量的地址。

func Uint64Var

func Uint64Var(p *uint64, name string, value uint64, usage string)

Uint64Var 定义了一个具有指定名称,默认值和用法字符串的 uint64 标志。参数 p 指向一个 uint64 变量,用于存储标志的值。

func UintVar

func UintVar(p *uint, name string, value uint, usage string)

UintVar 定义了一个具有指定名称,默认值和用法字符串的 uint 标志。参数 p 指向一个存储标志值的 uint 变量。

func UnquoteUsage

func UnquoteUsage(flag *Flag) (name string, usage string)

UnquoteUsage 从标志的用法字符串中提取一个反引号的名称,并返回它和未加引号的用法。给定“ name显示”它返回(“名称”,“显示的名称”)。如果没有后引号,则该名称是对标志值类型的合理猜测,如果标志为布尔值,则为空字符串。

func Var

func Var(value Value, name string, usage string)

Var 定义了一个具有指定名称和用法字符串的标志。标志的类型和值由 Value 类型的第一个参数表示,它通常包含 Value 的用户定义实现。例如,调用者可以创建一个标志,通过为切片提供 Value 的方法来将逗号分隔的字符串转换为一段字符串; 特别是 Set 会将逗号分隔的字符串分解成片。

func Visit

func Visit(fn func(*Flag))

Visit 按照字典顺序访问命令行标志,为每个标志调用 fn 。它只访问已设置的标志。

func VisitAll

func VisitAll(fn func(*Flag))

VisitAll 按照字典顺序访问命令行标志,为每个命令调用 fn 。它访问所有的标志,甚至没有设置。

type ErrorHandling

ErrorHandling 定义了解析失败时 FlagSet.Parse 的行为。

type ErrorHandling int

如果解析失败,这些常量会导致 FlagSet.Parse 的行为与所述相同。

const (
        ContinueOnError ErrorHandling = iota // Return a descriptive error.
        ExitOnError                          // Call os.Exit(2).
        PanicOnError                         // Call panic with a descriptive error.)

type Flag

一个标志表示一个标志的状态。

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

func Lookup(name string) *Flag

Lookup 返回指定命令行标志的标志结构,如果不存在则返回 nil 。

type FlagSet

FlagSet 表示一组定义的标志。FlagSet 的零值没有名称,并且具有 ContinueOnError 错误处理。

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

func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet

NewFlagSet 使用指定的名称和错误处理属性返回一个新的空标志集。

func (*FlagSet) Arg

func (f *FlagSet) Arg(i int) string

Arg 返回第 i 个参数。Arg(0)是标志处理后的第一个剩余参数。如果请求的元素不存在,则 Arg 返回一个空字符串。

func (*FlagSet) Args

func (f *FlagSet) Args() []string

Args 返回非标志参数。

func (*FlagSet) Bool

func (f *FlagSet) Bool(name string, value bool, usage string) *bool

Bool 定义了一个具有指定名称,默认值和用法字符串的布尔标志。返回值是存储标志值的 bool 变量的地址。

func (*FlagSet) BoolVar

func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string)

BoolVar 定义了一个具有指定名称,默认值和用法字符串的布尔标志。参数 p 指向一个存储标志值的 bool 变量。

func (*FlagSet) Duration

func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration

持续时间定义了一个带指定名称,缺省值和用法字符串的 time.Duration 标志。返回值是存储标志值的 time.Duration 变量的地址。该标志接受 time.ParseDuration 可接受的值。

func (*FlagSet) DurationVar

func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string)

DurationVar 定义了一个具有指定名称,缺省值和用法字符串的 time.Duration 标志。参数 p 指向一个用于存储标志值的 time.Duration 变量。该标志接受 time.ParseDuration 可接受的值。

func (*FlagSet) Float64

func (f *FlagSet) Float64(name string, value float64, usage string) *float64

Float64 定义了一个带有指定名称,缺省值和用法字符串的 float64 标志。返回值是存储标志值的 float64 变量的地址。

func (*FlagSet) Float64Var

func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string)

Float64Var 定义了一个带有指定名称,缺省值和用法字符串的 float64 标志。参数 p 指向一个 float64 变量,用于存储标志的值。

func (*FlagSet) Init

func (f *FlagSet) Init(name string, errorHandling ErrorHandling)

Init 为标志集设置名称和错误处理属性。默认情况下,zero FlagSet 使用空名称和 ContinueOnError 错误处理策略。

func (*FlagSet) Int

func (f *FlagSet) Int(name string, value int, usage string) *int

Int 定义了一个具有指定名称,默认值和用法字符串的 int 标志。返回值是存储标志值的 int 变量的地址。

func (*FlagSet) Int64

func (f *FlagSet) Int64(name string, value int64, usage string) *int64

Int64 定义了一个具有指定名称,缺省值和用法字符串的 int64 标志。返回值是存储标志值的 int64 变量的地址。

func (*FlagSet) Int64Var

func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string)

Int64Var 定义了一个带有指定名称,默认值和用法字符串的 int64 标志。参数 p 指向一个 int64 变量,用于存储标志的值。

func (*FlagSet) IntVar

func (f *FlagSet) IntVar(p *int, name string, value int, usage string)

IntVar 定义了一个具有指定名称,默认值和用法字符串的 int 标志。参数 p 指向一个 int 变量,用于存储标志的值。

func (*FlagSet) Lookup

func (f *FlagSet) Lookup(name string) *Flag

Lookup 返回指定标志的标志结构,如果不存在则返回 nil 。

func (*FlagSet) NArg

func (f *FlagSet) NArg() int

NArg 是标志处理后剩余的参数数量。

func (*FlagSet) NFlag

func (f *FlagSet) NFlag() int

NFlag 返回已设置的标志数量。

func (*FlagSet) Parse

func (f *FlagSet) Parse(arguments []string) error

解析解析参数列表中的标志定义,该列表不应包含命令名称。必须在 FlagSet 中的所有标志被定义之后且在程序访问标志之前调用。如果设置了 -help 或 -h 但未定义,则返回值为 ErrHelp 。

func (*FlagSet) Parsed

func (f *FlagSet) Parsed() bool

Parsed 报告是否调用了f.Parse。

func (*FlagSet) PrintDefaults

func (f *FlagSet) PrintDefaults()

PrintDefaults 将标准错误打印到集合中所有已定义的命令行标志的默认值。有关更多信息,请参阅全局函数 PrintDefaults 的文档。

func (*FlagSet) Set

func (f *FlagSet) Set(name, value string) error

Set 设置指定标志的值。

func (*FlagSet) SetOutput

func (f *FlagSet) SetOutput(output io.Writer)

SetOutput 设置使用和错误消息的目的地。如果输出为零,则使用 os.Stderr 。

func (*FlagSet) String

func (f *FlagSet) String(name string, value string, usage string) *string

字符串定义了一个具有指定名称,缺省值和用法字符串的字符串标志。返回值是存储标志值的字符串变量的地址。

func (*FlagSet) StringVar

func (f *FlagSet) StringVar(p *string, name string, value string, usage string)

StringVar 定义了一个具有指定名称,默认值和用法字符串的字符串标志。参数 p 指向一个字符串变量,用于存储标志的值。

func (*FlagSet) Uint

func (f *FlagSet) Uint(name string, value uint, usage string) *uint

Uint 定义一个具有指定名称,默认值和用法字符串的 uint 标志。返回值是存储标志值的 uint 变量的地址。

func (*FlagSet) Uint64

func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64

Uint64 定义了一个具有指定名称,默认值和用法字符串的 uint64 标志。返回值是存储标志值的 uint64 变量的地址。

func (*FlagSet) Uint64Var

func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string)

Uint64Var 定义了一个具有指定名称,默认值和用法字符串的 uint64 标志。参数 p 指向一个 uint64 变量,用于存储标志的值。

func (*FlagSet) UintVar

func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string)

UintVar 定义了一个具有指定名称,默认值和用法字符串的 uint 标志。参数 p 指向一个存储标志值的 uint 变量。

func (*FlagSet) Var

func (f *FlagSet) Var(value Value, name string, usage string)

Var 定义了一个具有指定名称和用法字符串的标志。标志的类型和值由 Value 类型的第一个参数表示,它通常包含 Value 的用户定义实现。例如,调用者可以创建一个标志,通过为切片提供 Value 的方法来将逗号分隔的字符串转换为一段字符串;特别是 Set 会将逗号分隔的字符串分解成片。

func (*FlagSet) Visit

func (f *FlagSet) Visit(fn func(*Flag))

Visit 按照字典顺序访问标志,为每个标志调用 fn 。它只访问已设置的标志。

func (*FlagSet) VisitAll

func (f *FlagSet) VisitAll(fn func(*Flag))

VisitAll 按字典顺序访问标志,为每个标志调用 fn 。它访问所有的标志,甚至没有设置。

type Getter

Getter 是一个接口,允许检索值的内容。它包装了 Value 接口,而不是其中的一部分,因为它出现在 Go 1 及其兼容性规则之后。此包提供的所有值类型均满足 Getter 接口。

type Getter interface {
        Value        Get() interface{}}

type Value

值是存储在标志中的动态值的接口。(默认值表示为一个字符串。)

如果值的 IsBoolFlag() bool 方法返回 true,则命令行解析器将使 -name 等同于 -name = true,而不是使用下一个命令行参数。

对于每个存在的标志,集合都以命令行顺序调用一次。标志包可以用一个零值接收者(例如零指针)调用 String 方法。

type Value interface {        String() string        Set(string) error}
Previous article: Next article: