什么是package
- go程序是由一個或者多個package組成吊宋,如果獨立程序窖维,則需要一個main package。
- package是由源文件構成绿店,每個go源文件在開始聲明所屬的package吉懊,例如
package io
- 其中同屬于一個包的源文件一般是放在同一個目錄之下,但是也可以存放到不同的目錄之中假勿。
- 一個源文件中的所有頂級標識符對包內(nèi)的其他源文件都是可見的
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目錄