1. 包的定义
包是多个Go源码的集合,是一种高级的代码复用方案,例如fmt、time等
#package bagname
注意事项:
- 包名为main的包为函数的入口包,这种包编译之后会得到一个可执行文件。
- 包名可以和文件夹的名字不同,包名中不能含有“-”符号
- 一个package的文件不能在多个文件下,一个文件夹下的文件只能归属一个包。
2. 包的可见性
#package pkg1
import "fmt"
var ma = 100 //ma首字母小写,故ma只限于本包访问
const Pi = 3.14 //首字母大写,故外部可见
func function1(){
var mb = 1 //mb为局部变量,只限于本函数访问
}
注意事项:
- 结构体中的字段名和接口中的方法名若首字母都是大写,则外部包可以访问
3. 包的导入
#package pkg2
//包的单行导入
import "fmt"
//包的多行导入
import(
"fmt"
"time"
)
4. 自定义包名
当导入的包名过长时或者包名冲突时,可以通过社会别名的方式解决此问题。
#package otername "github.com"
4. 匿名导入包
若只想导入包,不使用内部数据时,可以使用匿名导入包
#package _ "github.com"