在Go語言中,包是函數與資料的集合,用package定義一個包,包的名字不一定要跟檔案名稱字一樣,接下來,將學習如何使用Go語言的包。
首先,我們建立一個Stack包,然後用一個主程式來調用這個包裡面的方法。這實際上涉及到Go語言中的工程的分包和編譯。Go語言是這麼來配置它的工程的,如下圖
其中package是工程的根目錄,我們需要事先設定環境變數GOPATH,如下
而bin目錄和pkg目錄是go編譯自動產生的,而src是手動建立的。所以建立工程的步驟大致是
(1)進入到package目錄,即工程根目錄
(2)執行mkdir src,建立一個src源檔案存放目錄
(3)在源檔案目錄中建立一個stack包,即mkdir stack
(4)再建立一個test包,用於測試stack的功能,此包中為主程式
(5)在src目錄下,執行go install stack,在src外產生了pkg檔案夾,linux_386代表執行平台
(6)在src目錄下,執行go install test,在src外產生了bin檔案夾,裡面得到的就是可執行檔了
以上就是Go語言的工程構建步驟與注意事項,注意一定不要忘了GOPATH的設定。
如果需要查看Go語言相關的環境變數,使用命令go env即可,如下
接下來貼上stack.go和test.go檔案的代碼。
stack.go
package stackimport ("strconv"//此包提供了基礎資料型別 (Elementary Data Type)轉化為字串,或者由字串轉化為基礎資料型別 (Elementary Data Type))type Stack struct {i intdata [20]int}func (s *Stack) Push(k int){s.data[s.i] = ks.i++}func (s *Stack) Pop(ret int) {s.i--ret = s.data[s.i]}func (s *Stack) String() string {var str stringfor i := 0; i < s.i; i++ {str = str + "[" + strconv.Itoa(i) + ":" + strconv.Itoa(s.data[i]) + "]"}return str}
test.go
package mainimport ("fmt" "stack")func main(){var st = new(stack.Stack)st.Push(1)st.Push(2)st.Push(3)fmt.Println(st)}
以上就是對Go語言工程以及包的使用的介紹。