什么是命令源码文件
简单来说,下面的文件就是一个命令源码文件;
那么,命令源码文件到底有什么特点呢?
- 命令源码文件是程序运行的入口,每个可独立运行的程序都必须拥有;
- 一个声明属于main包的源码文件,同时含有一个无参数声明,无结果声明的main函数;
命令源码文件怎样接受参数?
参数分为两种,函数传递和命令行参数传递;
第一种:参数传递:
- 如上图所示,golang中我们需要依赖flag包来传递和解析参数;
- 除了上图中的StringVar函数,还可以使用flag.String(),该函数是通过返回值来传递;
第二种:命令行参数传递:
- go run test.go -name="world“
如何查看命令源码的参数说明
解释一下:Usage of后面是可执行文件的路径,图中上下两次的对比可以明显看出。
怎样自定义命令源码文件的参数使用说明?
第一种:
如上圖,在main函數中添加代码,运行结果如下:
第二种:
先看一下运行结果:
解释一下:
实际上flag.CommandLine 相当于默认情况下的命令参数容器,调用flag函数的时候就相当于在嗲用flag.CommanndLine变量对应的方法。所以,当我们重新对Usag赋值的时候,也是可以修改源码文件的参数说明的。
最后,在解释一下一下,flag.PanicOnError 和 flag.ExitOnError,还是先看一下区别:
实际上,flag.PanicOnError 和 flag.ExitOnError 都是预定在flag包中的常量。
区别在于:
- flag.ExitOnError, 告诉CommandLine,当命令后跟 --help或者参数设置不正确的时候,在打印命令参数使用说明后,以状态码2(代码哦用户错误的使用了命令)结束程序;
- flag.PanicOnError,的区别在于,最后抛出了运行时恐慌;
- 两者都在flag.Parse() 的时候触发。