什么是package
- go程序是由一个或者多个package组成,如果独立程序,则需要一个main package。
- package是由源文件构成,每个go源文件在开始声明所属的package,例如
package io
- 其中同属于一个包的源文件一般是放在同一个目录之下,但是也可以存放到不同的目录之中。
- 一个源文件中的所有顶级标识符对包内的其他源文件都是可见的
package study
func a() {
}
如何导入其他package的
- 在package声明之后,使用import导入所需要的包,语法为:
package study
import packageName "path/to/package"
- packageName可以省略,在使用该package时,则使用该包声明的所属package作为访问修饰符
- packageName为.,则在使用该package的导出符号时,则不需要使用package方位修饰符
- packageName为_,则表示导入该package只是为了使用import的副作用(side effect),而不是使用该package的任何导出符。
package查找顺序
- GO 1.6版本之后,由于GO15EXPERIMENT机制默认开启,所以首先会首先在当前目录查找vendor查找import的目录。
- 如果在vendor目录下没有找到import的path,则要从GOROOT/src以及GOPATH/src查找import的目录。
- 所以每个项目src目录下新建vendor目录