Go语言中flag包怎么使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Go语言中flag包怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!os.Ar
千家信息网最后更新 2026年11月01日Go语言中flag包怎么使用

本篇内容介绍了"Go语言中flag包怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
os.Args
其实Go的os模块,也带有这个功能,但是这个功能有点欠缺。
不能接收像-u root -p 3306这样指定key的值,只能接收像root 3306这样的方式。简单了解一下吧。
代码
func main() { cmdArgs := os.Args if len(cmdArgs) > 0 { for index, value := range cmdArgs { fmt.Printf("索引:%v,value值:%v\n", index, value) } } }我们通过命令go build -o mysql.exe main.go编译成一个mysql.exe。

执行结果
注:返回的cmdArgs是一个切片,第一个值是自己的文件名,如果不想要自己第一个值,直接切片就好了。
修改第2行代码。
cmdArgs := os.Args[1:]
执行结果
flag
上述的可能也发现问题了,只能接收简单的值,不能接收key value这种。
flag可以做到,flag有只能接收以下几种类型。
bool
int系列(int,int64,uint,uint64)
float系列(float,float64)
string
duration
注意
使用flag包,最后要使用flag.Parse()转换一下才能获取命令行参数。
flag.Type()
话不多说,直接代码
func main() { // 第一个参数是命令行key,第二个参数是默认是,第三个参数是 .exe -h 提示 var user = flag.String("user", "root", "用户名") var port = flag.Int("port", 3306, "端口") var ip = flag.String("ip", "localhost", "mysql ip") //必须使用flag.Parse()解析一下命令行参数 flag.Parse() //flag.Type返回的是一个指针,必须通过 *变量取值 fmt.Println(*user,*port,*ip) }执行结果
.exe -h结果图
懂了叭,你今天,学废了吗!
flag.TypeVar()
上述你可能也发现了问题,需要用*变量才能取到值,是不是感觉不太方便,那就来看看flag.TypeVar()。
func main() { //声明变量用于接收命令行参数 var user string var port int var ip string //从命令行扫描参数赋值到变量 flag.StringVar(&user, "user", "root", "用户名") flag.IntVar(&port, "port", 3306, "端口") flag.StringVar(&ip, "ip", "localhost", "mysql ip") //必须使用flag.Parse()解析一下命令行参数 flag.Parse() //flag.Type返回的是一个指针,必须通过 *变量取值 fmt.Println(user, port, ip) }执行结果
flag其他方法
flag还有一些其他无关紧要的方法,了解就好。
func main() { //声明变量用于接收命令行参数 var user string var port int var ip string //从命令行扫描参数赋值到变量 flag.StringVar(&user, "user", "root", "用户名") flag.IntVar(&port, "port", 3306, "端口") flag.StringVar(&ip, "ip", "localhost", "mysql ip") //必须使用flag.Parse()解析一下命令行参数 flag.Parse() //flag.Type返回的是一个指针,必须通过 *变量取值 fmt.Println(user, port, ip) ///////////////// 其他方法 //返回命令行参数后的其他参数 fmt.Println(flag.Args()) //返回命令行参数后的其他参数个数 fmt.Println(flag.NArg()) //返回使用的命令行参数个数 fmt.Println(flag.NFlag()) }执行结果

"Go语言中flag包怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
参数
命令
变量
结果
代码
指针
方法
用户
用户名
端口
语言
个数
内容
功能
更多
知识
问题
实用
紧要
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
百单网互联网科技有限公司怎么样
云之行互联网科技
互联网是不是新科技
互联网核心科技是什么
互联网与科技金融数据
没上市的科技互联网公司
南山科技园互联网公司有哪些
宝灵互联网科技有限公司
哈尔滨屹滨互联网科技有限公司
洛阳昕诺飞互联网科技有限公司
广西互联网科技孵化中心
国大互联网教育科技有限公司工作
长沙互联网科技
上海创道互联网络科技有限公司
工业互联网科技创业
江苏互联网智能科技产品出厂价
互联网科技手机排行榜
求路客互联网科技电话
华人运通互联网科技公司
科技股互联网
互联网品科技
卓越科技互联网 招聘
广州优美互联网科技
栖莱科技互联网股份有限公司
湖南一路畅行互联网科技
翼展科技 首家互联网医院
科技赋能视角下互联网保险发展
工业互联网山东科技大学
兰石爱特工业互联网科技分公司