第三讲:命令源码文件
1、源码文件包含三种:命令源码文件、库源码文件和测试源码文件
2、如果一个源码文件声明属于main包,并且包含一个无参数声明且无结果声明的main()函数,那么就是命令源码文件。命令源码文件是一个程序的入口,是每个可独立运行的程序必须拥有的。
3、编写命令源码文件的关键包: flag。
可通过flag包在运行命令源码文件的时候传入参数(以下就是传入name参数)。
//两种穿参数的方法
flag.StringVar(&name, "name", "everyOne","comment")
//第一个参数是保存参数的指针,
//第二个参数是参数名称
//第三个参数是参数默认值
//第四个参数是参数简短说明
var name *string
var name = flag.String("name", "everyOne","comment")
终端执行命令
go run deme.go -name="Robert"
go run demo.go --help
4、命令源码文件支持的参数:
int(int|int64|uint|uint64),
float(float|float64)
string,
bool,
duration(时间),
var(自定义)
使用flag.var(),关键点在于需要实现flag包的Value接口。
第四讲:库源码文件
1.同一个文件夹下,包的声明语句需要相同,代表同一个包。
2.包名不需要和其所在的文件夹名相同。
3.首字母大小写来代表可见性,大写public/小写private
4.internal代码包中声明的公开程序实体仅能被该代码包的直接父包及其子包引用。