golang实现命令行程序的使用帮助

摘要:
通过flag包我们可以很方便的实现命令行程序的参数标志,接下来我们来看看如何实现命令行程序的使用帮助,通常以参数标志-h或--help的形式来使用.自动生成使用帮助我们只需要声明其他参数标志,并执行解析,flag包会帮我们自动生成使用帮助.//main.go//输出2个数,输出较大的数packagemainimport("flag""fmt""math")funcmain(){firstFlag:

通过flag包我们可以很方便的实现命令行程序的参数标志,
接下来我们来看看如何实现命令行程序的使用帮助,
通常以参数标志-h--help的形式来使用.

自动生成使用帮助

我们只需要声明其他参数标志,并执行解析,flag包会帮我们自动生成使用帮助.

//main.go
//输出2个数,输出较大的数
package main
import (
    "flag"
    "fmt"
    "math"
)
func main() {
    firstFlag := flag.Float64("first", 0, "第一个数")
    secondFlag := flag.Float64("second", 0, "第二个数")
    flag.Parse()
    max := math.Max(*firstFlag, *secondFlag)
    fmt.Print(max)
}

编译生成后执行看看:

E:GOPATHsrcmax>max.exe -help
Usage of max.exe:
  -first float
        第一个数
  -second float
        第二个数
E:GOPATHsrcmax>max.exe -first=5 -second=66
66

自定义使用帮助

也许你不大喜欢或不满足于自动生成的使用帮助,那么也你可以试试自定义使用帮助. 同样我们使用flag包,但这里重写了flag.Usage来实现自定义使用帮助.

//main.go
package main
import (
    "flag"
    "fmt"
)
const help =`
程序名称: max
描述: 输出2个数,输出较大的数.
示例: 
1. test -help
2. max -first=5 -second=66
`
func main() {
    flag.Usage =func() {
        fmt.Print(help)
    }
    flag.Parse()
    //这里只实现使用帮助.
}

编译生成后执行看看:

E:GOPATHsrcmax>max.exe -help
程序名称: max
描述: 输出2个数,输出较大的数.
示例:
1. test -help
2. max -first=5 -second=66

参考

免责声明:文章转载自《golang实现命令行程序的使用帮助》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何进行 WebSocket 协议的压测C#导出Excel-利用特性自定义数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

godror基于ODPI-C的 oracle golang 驱动使用

godror 是一个很不错的oracle golang 驱动,基于ODPI-C 编写,好处是我们需要需要依赖编译 我们只需要安装oracle client 就可以了,不像go-oci8需要编译,同时目前也有一个纯golang 的 oracle驱动,但是目前还不是很稳定,以下是godror的参考使用 参考代码 package main ​ import (...

Golang(三)Goroutine原理

前言 最近用到了一些 Golang 异步编程的地方,感觉 Golang 相对于其他语言(如 Java)对多线程编程的支持非常大,使用起来也非常方便。于是决定了解一下 Goroutine 的底层原理。 Goroutine 本质是协程,是实现并行计算的核心。只需要在对应的函数前加上 Go 关键词即可异步执行: go func() { }() 基本概念...

Linux客户端终端(命令行)访问samba

Linux客户端要连接samba/windows文件服务器时,需使用smbmount或mount指令:  smbmount //sambaserver/d /mnt/d -o username=aaa,password=bbb  smbmount //sambaserver/d /mnt/d -o username=aaa%bbb  mount -t sm...

JetBrains全家桶,pycharm、golang等最新版安装激活注册教程

插件介绍 JetBrains全家桶,支持注册激活IntelliJ IDEA , Pycharm , Webstorm , PhpStorm , Rider Clion , RubyMine, AppCode, Goland, DataGrip , Kotlin等15款产品。可以注册激活2020.2.4最新版本,可以永久激活最新版本。 注意:这里以gola...

Windiows server 2012:开机密码忘记处理办法

Windiows server 2012,开机密码忘记处理办法 一、让windows系统进入【疑难解答】界面,开机进入欢迎界面时按下F8时可进入,但这对Windows 10 、2012好象不好使,不过还有以下两种办法解决:    办法1、直接接服务器重启键,在启动过程中手动关闭,然后再重新打开服务器的电源,重复两次以上操作,使Windows以为是出了故障,...

Linux shell command line process(命令行处理流程)

Splits the command into tokens that are separated by the fixed set of metacharacters: SPACE, TAB, NEWLINE,;,(,),<,>,|, and&. Types of tokens include words, keywords,...