flag是Go标准库提供的解析命令行参数的包QANDA.REN文库-创新互联

flag

创新互联是一家专业提供阿尔山企业网站建设,专注与成都做网站、网站设计、外贸营销网站建设H5建站、小程序制作等业务。10年已为阿尔山众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

flag 是Go 标准库提供的解析命令行参数的包。

flag 是Go 标准库提供的解析命令行参数的包QANDA.REN文库

使用方式:

flag.Type(name, defValue, usage)

其中Type为String, Int, Bool等;并返回一个相应类型的指针。

flag.TypeVar(&flagvar, name, defValue, usage)

将flag绑定到一个变量上。

自定义flag

只要实现flag.Value接口即可:

type Value interface {

 String() string

 Set(string) error

}

通过如下方式定义该flag:

flag.Var(&flagvar, name, usage)

示例

package main

import "flag"

import "fmt"

import "strconv"

type percentage float32

func (p *percentage) Set(s string) error {

 v, err := strconv.ParseFloat(s, 32)

 *p = percentage(v)

 return err

}

func (p *percentage) String() string { return fmt.Sprintf("%f", *p) }

func main() {

 namePtr := flag.String("name", "lyh", "user's name")

 agePtr := flag.Int("age", 22, "user's age")

 vipPtr := flag.Bool("vip", true, "is a vip user")

 var email string

 flag.StringVar(&email, "email", "lyhopq@gmail.com", "user's email")

 var pop percentage

 flag.Var(&pop, "pop", "popularity")

 flag.Parse()

 others := flag.Args()

 fmt.Println("name:", *namePtr)

 fmt.Println("age:", *agePtr)

 fmt.Println("vip:", *vipPtr)

 fmt.Println("pop:", pop)

 fmt.Println("email:", email)

 fmt.Println("other:", others)

}

$ ./command-line-flags

name: lyh

age: 22

vip: true

email: lyhopq@gmail.com

other: []

$ ./command-line-flags -name golang -age 4 -vip=true -pop 99 简洁 高并发 等等

name: golang

age: 4

vip: true

pop: 99

email: lyhopq@gmail.com

other: [简洁 高并发 等等]

$ ./command-line-flags -h

Usage of ./command-line-flags:

 -age=22: user's age

 -email="lyhopq@gmail.com": user's email

 -name="lyh": user's name

 -pop=0.0: popularity

 -vip=true: is a vip user

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:flag是Go标准库提供的解析命令行参数的包QANDA.REN文库-创新互联
文章源于:http://ybzwz.com/article/ccgidc.html