■实例说明
我们在执行一些可执行命令时,经常会传入诸如 -name xxx 之类的参数,我们可以使用flag包实现。
1)使用flag包定义命名参数2)可执行文件 -h 或者 -help会打印所有支持的命令
3)支持的命令行参数格式有以下几种:
-flag xxx (使用空格,一个-符号)
–flag xxx (使用空格,两个-符号)
-flag=xxx (使用等号,一个-符号)
–flag=xxx (使用等号,两个-符号)
其中,布尔类型的参数必须使用等号的方式指定。
Flag解析在第一个非flag参数(单个”-“不是flag参数)之前停止,或者在终止符”–“之后停止。
// 直接-h输出所有支持参数
// 支持命令行参数
■实例代码
[Golang] 纯文本查看 复制代码 package main
import (
"flag"
"fmt"
)
// getParams 获取命令行参数
func getParams() (string, int64, string) {
// 定义参数:env,默认值test
env := flag.String("env", "test", "非必填:执行环境,默认:test")
// 定义参数:count,int64类型,默认值10
count := flag.Int64("count", 10, "非必填:最大处理协程数量,默认:10个")
// 定义参数name,字符串类型
var name string
flag.StringVar(&name, "name", "", "非必填:姓名")
// 解析命令行参数
flag.Parse()
// 注意:前两个是返回的*,后一个直接返回,这个和定义参数的方式flag.String/flag.StringVar不同导致
return *env, *count, name
}
func main() {
// 1、首先获取相关参数
env, count, name := getParams()
// 2、执行具体任务
fmt.Printf("env = %s\n", env)
fmt.Printf("count = %d\n", count)
fmt.Printf("name = %s\n", name)
}
|