golang实现命令行程序的使用帮助
通过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:\GOPATH\src\max>max.exe -help
Usage of max.exe:
-first float
第一个数
-second float
第二个数
E:\GOPATH\src\max>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:\GOPATH\src\max>max.exe -help
程序名称: max
描述: 输出2个数,输出较大的数.
示例:
1. test -help
2. max -first=5 -second=66
参考
golang实现命令行程序的使用帮助的更多相关文章
- Node.js 命令行程序开发教程
nodejs开发命令行程序非常方便,具体操作方式查看下面几篇文章 http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html ...
- 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
控制台程序(命令行程序)设置窗口宽度高度,如下代码: Console.WriteLine(Console.WindowHeight); Console.WriteLine(Console.Buffer ...
- 命令行程序增加 GUI 外壳
Conmajia © 2012 Updated on Feb. 21, 2018 命令行大家都用过: 图 1 命令行程序工作界面 现在想办法为它做一个 GUI 外壳,实际效果参考图 2. 图 2 带 ...
- myapp——自动生成小学四则运算题目的命令行程序(侯国鑫 谢嘉帆)
1.Github项目地址 https://github.com/baiyexing/myapp.git 2.功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 功能(已全部实现) 使用 -n ...
- c#词频统计命令行程序
这里将用c#写一个关于词频统计的命令行程序. 预计时间分配:输入处理3h.词条排序打印2h.测试3h. 实际时间分配:输入处理1h.词条排序打印2h.测试3h.程序改进优化6h. 下面将讲解程序的完成 ...
- 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序
软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...
- Node.js 命令行程序开发资料
Node.js 命令行程序开发教程http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html用Node.js创建命令行工具ht ...
- Golang: 打印命令行参数
记得最早在学校机房学习 Java 时,照着书上的例子,写一个最简单 main 方法,当程序运行并在屏幕上打印出 hello world 时,内心竟有种莫名的激动,相信很多人都有这种经历吧. 不管学什么 ...
- Node: 开发命令行程序
CLI 的全称是 Command-line Interface (命令行界面),即在命令行接受用户的键盘输入并作出响应和执行的程序. 在 Node.js 中,全局安装的包一般都具有命令行界面的功能,例 ...
随机推荐
- React基础笔记1
官网:https://react.docschina.org/ 一.认知React 概述 React 起源于 Facebook(脸书) 的内部项目,它是一个用于构建用户界面的 javascript 库 ...
- CDS标准视图:催款冻结描述 I_DunningBlockingReasonText
视图名称:催款冻结描述 I_DunningBlockingReasonText 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Dunning Blocking ...
- CDS标准视图:PM通知单 I_LocationAnalysisCube
视图名称:PM通知单 I_LocationAnalysisCube 视图类型:分析 视图代码: 点击查看代码 @EndUserText.label: 'Location Analysis - Cube ...
- 第四五章 (Nginx+Lua)Lua模块开发
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发:而且模块化是高性能Lua应用的关键.使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每 ...
- 解密prompt系列47. O1 Long Thought的一些特征分析
之前我们花很多章讨论过思维链,包括思维链的 组织结构,例如Self-Consistency,TOT,TOMT, GOT,AOT,POT 编排方式,例如Plan-and-Slove,Least-to-m ...
- AI赋能软件测试:未来已来,你准备好了吗?
ps:文末有福利领取哦 引言 在数字化转型的浪潮中,软件测试作为保障产品质量的关键环节,正面临着前所未有的挑战. 传统的测试方法已难以满足快速迭代和复杂场景的需求,而人工智能(AI)的引入,则为软件测 ...
- pg数据库性能优化(转)
参数修改的方式 1.修改配置文件 在配置文件data目录下postgresql.conf 中直接修改,修改前记得备份一下原文件.修改完成之后,记得重启数据库哦. 2.命令行的修改方式 ALTER SY ...
- MacSecureCRT配置
一.调整连接服务器超时时间 Options->Global Options->General->Default Session-> 右侧Edit Default Setting ...
- 嵌入式linux下的FTP服务器配置记录
嵌入式linux FTP服务器 一般嵌入式Linux下的FTP服务器会有什么要求呢?一般来说差不多如下所示 账号认证,需要特定用户才能访问(不一定要和登录用户挂钩) 根目录固定在一个固定的位置,且不能 ...
- Docker - 部署禅道
原文链接:https://mp.weixin.qq.com/s/8L0Rv6Wc0lFsQU6Lw0QloQ 简单的看了一下原文,他使用的是Ubuntu的操作系统,第一步的Docker安装相关命令 ...