包
包是多个Go
源码即.go
文件的集合,可以理解为包是一个存放源码文件的文件夹,如内置的fmt
、os
、io
。
1 | package 包名 // 每个.go文件夹下都要声明文件所属的包 |
- 一个文件夹下只能有一个包
- 同样一个包的文件不能在多个文件夹下
- 包名不能和文件夹重名
- 包名为
main
包的应用程序入口
可见性
将标识符的首写字母大写,就可以对外可见。结构体中字段名的首写字母如果大写,外部包也可以访问这些字段。
1 | package pkg2 |
包的导入
- 单行或者多行导入
- 包的别名
- 匿名导入包
_
1 | import "package_path" |
例如:
1 | package packagedemo |
- 包的导入放在文件开头包声明语句下面
- 不能循环导入,用双引号包裹起来
- 包名是从
$GOPATH/src/
后开始计算的,使用/
进行路径分隔
init函数
在Go语言程序执行时导入包语句会自动触发包内部init()
函数的调用。需要注意的是: init()
函数没有参数也没有返回值。
- 没有返回值和参数
- 在程序运行时候自动被调用