简介: Go语言内置的 flag 包实现了命令行参数的解析,flag 包使得开发命令行工具更为简单。

介绍

Go语言内置的 flag 包实现了命令行参数的解析,flag 包使得开发命令行工具更为简单。

  1. go run main.go -name="lys" -age 21

os.Args获取

  1. for idx, args := range os.Args {
  2. fmt.Println("参数"+strconv.Itoa(idx)+":", args)
  3. }

输出

  1. 参数0: C:\Users\ADMINI~1\AppData\Local\Temp\go-build1884770015\b001\exe\main.exe
  2. 参数1: -name=lys
  3. 参数2: -age
  4. 参数3: 21

flag包获取

  1. var name string
  2. var age int
  3. flag.StringVar(&name, "name", "liuyunshengsir", "姓名")
  4. flag.IntVar(&age, "age", 0, "年龄")
  5. //解析命令行参数
  6. flag.Parse()
  7. fmt.Println("姓名:" + name)
  8. fmt.Println("年龄:", age)

输出

  1. 姓名:lys
  2. 年龄: 21

debug配置launch.json设置参数

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "Launch",
  9. "mode": "debug",
  10. "program": "${workspaceFolder}/main.go",
  11. "env": {
  12. "CONFIG_FILE":"AAAAA.YAML"
  13. },
  14. "args": ["-name=刘云生 ","-age=21"]
  15. }
  16. ]
  17. }

来源 https://developer.aliyun.com/article/1000691