Golang學習筆記(三):包

原創做者,公衆號【程序員讀書】,歡迎關注公衆號,轉載文章請註明出處哦。git

概念

Go語言中的包,相似其餘語言中的庫或命名空間,主要是用於組織代碼和方便代碼複用。程序員

做爲一個獨立的空間,每一個包能夠包含多個以.go結尾的源代碼文件。github

包所在的目錄路徑,則做用包的導入路徑,好比有github.com/util,對應的路徑爲:bash

$GOPATH/src/github.com/util函數

另外,包名最要使用小寫,每一個包有全局惟一的導入路徑,包名則是目錄路徑,如github.com/util,util是包名工具

訪問性

package util

var a string

func Format(f format,a ...interface{}){
    //函數體
}

複製代碼

在上面定義的util包中,Format函數首字母爲大寫,由於,在其餘包能夠訪問,而變量a則只在包內可見。spa

包文檔

包的源文件代碼第一句是以package開頭的包聲明語句,在package以前,能夠添加註釋做爲包的說明,通常只須要在一個源文件中添加說明,以後可使用Go提供的工具鏈導出包文檔,若是包文檔說明很大,能夠在包中單獨建一個doc.go文檔說明文檔。code

包的初始化

在包中,可使用表達式或常量值初始化某些變量,對於一些複雜的初始化,也能夠放在init函數中,包中的每一個源文件均可以定義一個init函數,這個函數不會被導出,而編譯器在編譯包時,會根據源文件編譯順序,執行每個源文件中的init函數。orm

所以,main包中main函數所在的源文件若是有定義init函數,則通常最後執行,由於編譯要保證main執行前,全部包都初始化好了。cdn

package util

var c = b + c

var a = 1

var b = 2

var d string

func init(){
    d = "str"
}

複製代碼

你的關注,是我寫做路上最大的鼓勵!

相關文章
相關標籤/搜索