go 语言的 flag 包
2022/1/1 6:07:15
本文主要是介绍go 语言的 flag 包,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
功能
作为程序员,经常会使用一些只有命令行,没有图像界面操作的小工具。
这种小工具,我们使用 go
语言,借助内置的 flag
包,可以很方便的可开发。
用法
切记一条原则。下面的内容,都必须要使用 go build -o "packagename""
来生成二进制包来运行,不能直接使用 run main.go
的方式运行。
代码示例如下
var ( name string age int ) func init() { flag.StringVar(&name, "name", "刘德华", "请输入名字") flag.IntVar(&age, "age", 18, "请输入年龄") } func main() { flag.Parse() //如果想要使用命令行传参,就要掉用这个函数。否则只是赋予默认值 fmt.Println(name) fmt.Println(age) }
使用方法
-
一开始先声明
name
,age
变量,然后调用flagflag.StringVar
函数,将默认值存入对应的 变量的指针 -
执行
init
函数,会给变量赋予对应的默认值 -
但是只执行
ini
函数,只能使用赋予变量默认值,如果使用命令行传参,就要调用flag.Parse()
方法,解析命令行传入的参数。 -
命令行参数的格式可以是:
- flag xxx (使用空格,一个 - 符号)
- --flag xxx (使用空格,两个 - 符号)
- -flag=xxx (使用等号,一个 - 符号)
- --flag=xxx (使用等号,两个 - 符号)
flag.Parse() 方法
-
函数flag.Parse用于真正解析命令参数,并把它们的值赋给相应的变量。对该函数的调用必须在所有命令参数存储载体的声明(这里是对变量name的声明)和设置(这里是指flag.StringVar函数的调用)之后,并且在读取任何命令参数值之前进行。正因为如此,我们最好把
flag.Parse()
放在main函数的函数体的第一行 -
解析过程中遇到非选项字段,将立即结束解析,后面的字段会被放入到
args
变量中,flag.Args()
里面存的是数组。 -
以
-
或者--
开头指定选项名,-
和--
是等效的
这篇关于go 语言的 flag 包的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-012024年每个初学者都应该知道的Django十大技巧
- 2024-09-30云原生周刊:Argo CD v2.13 发布候选版本丨2024.9.30
- 2024-09-29哪个更快:OpenAI Whisper、Google TTS 还是 Piper TTS??
- 2024-09-29MLOps 端到端系统在 Google 云平台(I):赋能预测解决方案
- 2024-09-26通过 gcloud CLI 认证从本地脚本写入 Google Sheets
- 2024-09-24GoLand 新建项目 Enable vendoring support automatically 的作用是什么?-icode9专业技术文章分享
- 2024-09-21MongoDB资料:新手入门与初级应用指南
- 2024-09-20MongoDB教程:初学者必备指南
- 2024-09-05MongoDB入门:快速掌握NoSQL数据库基础
- 2024-08-28go 项目中怎么打印调试-icode9专业技术文章分享