作业要求,以及学习参考资料
https://pmlpml.gitee.io/service-computing/post/ex-cli-basic/
本次作业是模仿一个比较简单的CLI程序(基于C语言),用golang重写一遍
在此之前,需要了解一些基础知识
CLI程序:可以在终端中直接直接调用的程序
flag的作用:在CLI程序中,会有许多可选择的参数,例如 “selpg -s 100 -e 200”等,利用flag,可以直接获取s,和e参数的值
必选参数:例如 “gcc code.c” 必须要输入的文件等等
为啥要用Pflag,而不是用flag呢?(当然,我也没有很搞懂,但是它们的使用方法是类似的)
pflag 包与 flag 包的工作原理甚至是代码实现都是类似的,下面是 pflag 相对 flag 的一些优势:
- 支持更加精细的参数类型:例如,flag 只支持 uint 和 uint64,而 pflag 额外支持 uint8、uint16、int32 等类型。
- 支持更多参数类型:ip、ip mask、ip net、count、以及所有类型的 slice 类型。
- 兼容标准 flag 库的 Flag 和 FlagSet:pflag 更像是对 flag 的扩展。
- 原生支持更丰富的功能:支持 shorthand、deprecated、hidden 等高级功能。
除此之外,还需要了解 io 与 bufio的关系,用于文件的读写
go的io库里,读写文件的方法很难用,因此需要把io封装在bufio中。使用bufio的方法,可以更加方便
对于io和bufio的学习,参考https://blog.csdn.net/houyanhua1/article/details/88760853