🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
前言
日常开发使用到的命令行工具大都支持如下特性:
- 文档自动生成(如
-h --help
) - 多级子命令(如
docker exec -it
) - 支持参数(如
ls -color=auto
) - 长短选项(如
-v
和--verbose
) - 全局选项(如
docker -D run -d nginx
) - Tab 自动补全
本文就探讨一下 Go 语言中如何写一个拥有类似特性的命令行程序。
os.Args
类似于 shell 中的 $1
$2
,在 Go 中可以使用 os.Args
来获取命令行参数,这种临时使用一两个参数还可以,代码可维护性太差了,不推荐使用。
其中 Args[0] 是程序的名称,Args[1] 是第一个参数,依此类推。
flag 快速开始
Go 标准库自带的 flag
包可以实现简单的命令行解析,我们模仿一下 ls
命令的参数,示例如下:
func main() {
// 直接定义 flag,返回值为指针
all := flag.