通过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实现命令行程序的使用帮助的更多相关文章

  1. Node.js 命令行程序开发教程

    nodejs开发命令行程序非常方便,具体操作方式查看下面几篇文章 http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html ...

  2. 在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  3. C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数

    控制台程序(命令行程序)设置窗口宽度高度,如下代码: Console.WriteLine(Console.WindowHeight); Console.WriteLine(Console.Buffer ...

  4. 命令行程序增加 GUI 外壳

    Conmajia © 2012 Updated on Feb. 21, 2018 命令行大家都用过: 图 1 命令行程序工作界面 现在想办法为它做一个 GUI 外壳,实际效果参考图 2. 图 2 带 ...

  5. myapp——自动生成小学四则运算题目的命令行程序(侯国鑫 谢嘉帆)

    1.Github项目地址 https://github.com/baiyexing/myapp.git 2.功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 功能(已全部实现) 使用 -n ...

  6. c#词频统计命令行程序

    这里将用c#写一个关于词频统计的命令行程序. 预计时间分配:输入处理3h.词条排序打印2h.测试3h. 实际时间分配:输入处理1h.词条排序打印2h.测试3h.程序改进优化6h. 下面将讲解程序的完成 ...

  7. 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

    软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...

  8. Node.js 命令行程序开发资料

    Node.js 命令行程序开发教程http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html用Node.js创建命令行工具ht ...

  9. Golang: 打印命令行参数

    记得最早在学校机房学习 Java 时,照着书上的例子,写一个最简单 main 方法,当程序运行并在屏幕上打印出 hello world 时,内心竟有种莫名的激动,相信很多人都有这种经历吧. 不管学什么 ...

  10. Node: 开发命令行程序

    CLI 的全称是 Command-line Interface (命令行界面),即在命令行接受用户的键盘输入并作出响应和执行的程序. 在 Node.js 中,全局安装的包一般都具有命令行界面的功能,例 ...

随机推荐

  1. Canvas简历编辑器-选中绘制与拖拽多选交互方案

    Canvas简历编辑器-选中绘制与拖拽多选交互方案 在之前我们聊了聊如何基于Canvas与基本事件组合实现了轻量级DOM,并且在此基础上实现了如何进行管理事件以及多层级渲染的能力设计.那么此时我们就依 ...

  2. runoob-pandas(python)

    https://www.runoob.com/pandas/pandas-tutorial.html Pandas 教程 Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pand ...

  3. 【java提高】---细则(3)

    HashSet 与TreeSet和LinkedHashSet的区别 今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象.所以通过取出的数据肯定会有重复,所以要去掉重 ...

  4. JAVA8——StringJoiner类

    引言:在阅读项目代码是,突然看到了StringJoiner这个类的使用,感觉很有意思,对实际开发中也有用,实际上是运用了StringBuilder的一个拼接字符串的封装处 介绍 StringJoine ...

  5. LeetCode 第1题:两数之和

    LeetCode 第1题:两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以 ...

  6. linux安装hbase

    下载后解压到/opt/Servers/hbase-1.4.6 使用Hbase自带的zookeeper================================================== ...

  7. 深度学习中CUDA环境安装教程

    首先说明,本人是小白,一次安装,可能有不对的地方,望包含. 安装CUDA 因为我们是深度学习,很多时候要用到gpu进行训练,所以我们需要一种方式加快训练速度. 通俗地说,CUDA是一种协助" ...

  8. 本地部署Grok2.0

    Grok-beta2.0(通过ChatBox实现) 个人使用: 1.注册登录 官方地址https://x.ai/ 2.创建API密钥 地址https://console.x.ai/ 3.登录githu ...

  9. 割以咏志:Stoer–Wagner 算法求解全局最小割

    全局最小割问题(Global Min-Cut Problem)是图论中的一个经典问题,旨在通过切割图中的边来划分图的顶点集合.具体来说,给定一个加权无向图 $ G = (V, E) $,图中每条边 $ ...

  10. ABB机器人维修I/O通信详细解释

    信号解析的深度探索与解析 在ABB机器人维修系统那精密而复杂的运作机制中,I/O(Input/Output)信号与外围机械手间的通信,是通过一种既高度组织化又精心设计的层次结构来实现的.这一结构严格遵 ...