flag
模块主要用来解析命令行的参数
一个比较好的第三方模块 cli
常用函数如下:
//定义一个字符串的变量
type string string
func String(name string, value string, usage string) *string
//定义一个int型变量
type int int
func Int(name string, value int, usage string) *int
//定义一个bool型变量
type bool bool
func Bool(name string, value bool, usage string) *bool
func Float64(name string, value float64, usage string) *float64
func Int64(name string, value int64, usage string) *int64
//在所有的变量参数被设置后需要进行一次解析才生效
func Parse()
//给指定的参数设置值
func Set(name, value string) error
//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
}
示例:
$ cat flag-test.go
package main
import (
"flag"
"fmt"
)
//定义一个字符串变量,并制定默认值以及使用方式
var species = flag.String("species", "gopher", "the species we are studying")
//定义一个int型字符
var nums = flag.Int("ins", 1, "ins nums")
func main() {
// 上面定义了两个简单的参数,在所有参数定义生效前,需要使用flag.Parse()来解析参数
flag.Parse()
// 测试上面定义的函数
fmt.Println("a string flag:",string(*species))
fmt.Println("ins num:",rune(*nums))
}
$ go run flag-test.go
a string flag: gopher
ins num: 1
$ go run flag-test.go -ins 3 -species biaoge
a string flag: biaoge
ins num: 3
网友评论