Go语言中flag包怎么使用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"Go语言中flag包怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!os.Ar
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
杭州龙汇网络技术有限公司
网络安全的基本内容有什么
服务器的网站别人无法访问
嵌入式软件开发有哪些方向
时间在数据库中的长度
macos 服务器版本
互联网科技suv
紫光r3800 g3 服务器
服务器二手哪个好
金蝶软件服务器怎么删除记录
学校网络安全工作预案
网络安全有法律法规吗
数据库机房的英语名称
以下数据库能查找中文期刊
专业网络安全问题
丽水网络安全问题
赣州数据库
即墨区平台软件开发
软件开发对身体有害吗
客户端没网服务器能接收到嘛
如何查邮箱服务器
黄山软件开发培训
向数据库数据插入自增数
日本知名的软件开发公司
青岛鼎瑞软件开发有限公司
软件开发规模风险的防范
高青销售软件开发价格
软件开发初级工程师证书
网络安全工程师分级
株洲高速公路服务器