首页
学习
活动
专区
圈层
工具
发布

golang flag 包的使用指北

说起 golang 的 flag 个包,我们第一反应的是什么呢?...至少我曾经第一次看到 flag 包的时候,第一反应是想起写 C 语言的时候咱们用于定义一个表示的,我们一般会命名为 flag 变量 实际上 golang 的 flag 包是用于处理命令行参数的工具包,我们可以基于这个包来开发自定义的命令行工具...包的内容,可以直接查看官方文档 ,此处咱们是对 flag 包的介绍,平常都会使用到的一些功能,以及注意事项,分别从如下 3 个小点介绍一下常用的功能 注册 flag 和 Flag 解析支持的数据类型...flag,例如一般写 web 服务器的时候,就会去使用 flag 包设置端口 咱们在程序中使用 flag 包,定义一个端口 通过效果,我们可看到,咱们使用 flag 包来设置命令行参数时,实际上返回的是一个指针...,我们也是可以 --flag xxx,我们还可以 -flag=xxx ,同理 --flag=xxx 也是 ok 的 当然,如果对 golang 自身对于 flag 包的实现方式感兴趣的兄弟,也可以好好看看

34810

golang实战之flag包

https://blog.csdn.net/boling_cavalry/article/details/87901677 开发命令行程序时,经常需要接受命令行传入的参数,flag包提供了参数处理的功能...,官方文档地址:https://golang.google.cn/pkg/flag/ demo简介 写个使用flag包的demo,用于接收命令行参数并打印出来,如果命令行没有输入该参数则提供默认值,go...可以将参数的名称、值、默认值、描述等内容取到 flag.Visit(func(f *flag.Flag){ fmt.Printf("参数名[%s], 参数值[%s], 默认值[%s], 描述信息...可以将参数的名称、值、默认值、描述等内容取到 flag.VisitAll(func(f *flag.Flag){ fmt.Printf("参数名[%s], 参数值[%s], 默认值[%s],...包常用API的实战了,golang的学习刚刚开始,读者您如果发现文章中的问题,还请及时指正,谢谢!

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Go:命令行参数解析包 flag 简介

    简单的情况下可以不使用任何库,直接处理 os.Args;其实 Golang 的标准库提供了 flag 包来处理命令行参数;还有第三方提供的处理命令行参数的库,比如 Pflag 等。...本文将介绍 Golang 标准库中 flag 包的用法 示例 导入包 import "flag" 代码示例: package main import "flag" import "fmt" // 定义命令行参数对应的变量...=%s, num=%d\n", flag.Args(), flag.NArg()) for i := 0; i !...查看帮助信息,通过命令行参数 -h 或 --help 可以查看帮助信息: 小结 本文介绍了 Golang 标准库中 flag 包的基本用法,并进一步分析了其主要的代码逻辑。...其实 flag 包还支持用户自定义类型的命令行参数,本文不再赘述,有兴趣的朋友请参考官方 demo。

    44810

    Go 命令行解析 flag 包之快速上手

    本篇文章是 Go 标准库 flag 包的快速上手篇。...目标案例 回归主题,继续介绍 flag 吧。通过案例介绍包的使用会比较直观。 举一个例子说明吧。...一个选项在 flag 包中用一个 Flag 表示,那 -h 可以用一个 Flag 表示。一个选项通常由几个部分组成,如名称、使用说明和默认值。...一个 Flag 应该有长短两种形式,但 flag 包并不支持这种风格,需要曲线救国才能实现。(注:本文开开头提到的 pflag 支持。)...总结 本文介绍了 Go 中 flag 包的使用,一般的场景已经足够使用了。最后,简单地谈了一个比较趣味性的话题,命令行的风格,是否有种感觉,程序员之间的门派之争真是无处不在。

    84410

    Golang开发命令行工具之flag包的使用

    包实现,用golang设计命令行工具而不用shell、python的原因这里就不做论述了 2、flag包介绍 flag包用来解析命令行参数 相比简单的使用os.Args来获取命令行参数,flag可以实现按照更为通用的命令行用法...的详细用法可参考flag包文档 flag包支持的命令行参数的类型有bool、int、int64、uint、uint64、float float64、string、duration 即布尔值、整型、浮点型...、字符串、时间段类型 3、flag包命令行参数的定义 定义flag命令行参数,用来接收命令行输入的参数值,一般有以下两种方法 flag.TypeVar():先定义参数(实际上是指针),再定义flag.TypeVar...) // 定义布尔型命令行参数graduated graduated:= flag.Bool("g", false, "graduated参数,默认为false") 4、flag包命令行参数解析 固定用法...,只能用等号方式指定 5、flag包命令行帮助 flag包默认会根据定义的命令行参数,在使用时如果不输入参数就打印对应的帮助信息 这样的帮助信息我们可以对其进行覆盖去改变默认的Usage package

    1.1K30

    Go语言中的命令行参数处理——flag包

    flag 包的历史可以追溯到 Go 语言的诞生。...随着 Go 语言的发展,flag 包也逐渐增加了更多的功能,例如支持自定义数据类型、支持参数默认值、支持参数描述信息等。在实际使用中,flag 包的使用方式非常简单。...特性在 Go 语言中,flag 包是一个用于处理命令行参数的库。它提供了一种方式,使得开发者可以定义并处理用户通过命令行输入的参数。首先,flag 包允许我们定义不同类型的标志。...在下一节中,我们将详细介绍如何使用 flag 包来处理命令行参数。使用方法在 Go 语言中,flag 包提供了命令行参数的解析功能。...pflag 是 flag 包的一个扩展,它增加了 POSIX 风格的命令行参数。与 flag 包相比,pflag 提供了更多的选项和更灵活的命令行参数解析。

    77710

    Go 命令行解析 flag 包之扩展新类型

    上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int、int64、uint、uint64)、浮点型(float64)、字符串(string)和时长(duration)。...flag 内置支持能满足大部分的需求,但某些场景,需要自定义解析规则。一个优秀的库肯定要支持扩展的。本文将介绍如何为 flag 扩展一个新的类型支持?...可以参考 flag 包内置类型的实现思路,比如 flag.DurationVar。Duration 不是基础类型,解析结果是存放到了 time.Duration 类型中,可能更有参考价值。...如果继续往下追,会根据 Value 创建一个 Flag 变量。...对应于 flag.DurationVar,这个变量的类型分别是 *time.Duration、durationValue 和 Flag。

    75610

    一篇文章带你搞定Go语言中flag包使用

    前言 Hey,大家好,我是码农,星期八,这次来讲一下的Go语言中,比较常用的一个包flag包。 这个包的用途是接收命令行参数的。 如果你玩过Mysql,肯定对这个界面很熟悉 ?...flag 上述的可能也发现问题了,只能接收简单的值,不能接收key value这种。 flag可以做到,flag有只能接收以下几种类型。...bool int系列(int,int64,uint,uint64) float系列(float,float64) string duration 注意 使用flag包,最后要使用flag.Parse()...总结 本次章节主要学习的是flag包的使用,flag包主要处理的命令行参数传递问题。 有了这个我们就能开发出像mysql那样的程序。...flag主要有flag.Type和flag.TypeVar两种区别 flag.Type出来的变量是指针类型,需要用*变量名才能取值 flag.TypeVar出来的变量直接就是标准变量(推荐) 如果在操作过程中有任何问题

    1.1K20

    DNS Flag Day

    什么是DNS Flag Day?      DNS Flag Day是一项针对授权DNS的、共识性的全球更新,旨在确保所有主要DNS基础架构都遵循新的EDNS标准(DNS扩展机制)。...针对此次DNS Flag Day,我们正在各版本套餐的服务器上逐步部署最新版本的DNS服务器软件,并将会在2月1日前完成所有部署。...届时,您的域名解析将不会受到DNS Flag Day的影响。      DNSPod始终坚持把用户的网站服务稳定性放在第一位,请各位DNSPod用户放心。      ...如需详细了解DNS Flag Day内容,或验证您当前解析服务商是否符合规范,请查阅 https://dnsflagday.net/ ,欢迎与我们有更多交流~~~扫码关注DNSPod微信公众号,实时了解我们的服务动态

    1.2K20

    应用之 Flag功能介绍

    根据Flag输出的时序以及复位方式分为以下模式(如表2-1所示): 表2-1 Flag功能概览 Flag模式 功能 0 Flag deactivated 1 SET_BEFORE_AND_NO_RESET...在模式2下,当第2条指令开始执行时,对应的Flag位flag[1]被置位(图中时刻1),当第3条指令执行完毕时(图中时刻2)flag[1]被复位。...在模式3下,当第2条指令开始执行时,对应的Flag位flag[1]被置位(图中时刻1),一个扫描周期之后(图中时刻2)flag[1]被复位。...在模式5下,当第2条指令开始执行时,对应的Flag位flag[1]被置位(图中时刻1);当第二条指令执行完毕后(图中时刻2)会等待外部的确认信号;当外部将flag[1]复位后,程序检查到flag[1]下降沿...当启用了多个WAIT_FOR_ACKNOWLEDGE等待确认模式的Flag时,需要将所有Flag都复位后才会进入下一条指令 2.2 Flag功能启用方式 Flag功能通过用于定义路径的数据结构PathData

    2K33
    领券