Go 的package

 

1、包的一些基本的概念git

一、在同一個目錄下的全部go文件中,只能有一個main函數。若是存在多個main函數,則在編譯的時候會報錯github

那麼,在同一個目錄下的兩個go文件到底是什麼關係? 爲何會彼此影響呢?函數

這裏要提到go package的兩個約束:spa

一、同一個目錄下的go文件,若是package是main,那麼這個目錄下的go文件只能有一個main函數。3d

二、同一個目錄下的go文件,只能是一個package。 (注意: 這裏說的是同一個目錄下的go文件,但不是同一個目錄下的其餘目錄中的go文件)blog

 

那麼問題來了,爲何須要package呢?文檔

在一個項目中,會有不少個go文件,package的做用就是進行一個代碼分類組織get

舉個例子:string

  1.在hello.go裏面定義個main函數,引用了main的package。it

  2.在另外一個echo.go裏面,由於只能有一個main函數,因此這裏只定義了變量 var X string  = "chenchao"

  3.那麼在hello.go裏面就能夠直接用另外一個文件中的X變量了

package的做用:

  一、同一個package下能夠共享變量

  二、同一個package下能夠共享函數

 

 2、一個在線的package的幫助文檔

 

 http://godoc.org/+包的名稱

 

 3、引入第三方的package

例如: 引入github下的一個庫

一、go get github.com/icexin/golib

  這一步操做就是講git上的庫下載到本地,你會發現這條命令會將package默認下載到 $GOPATH下的/src/下,並與package的目錄結構一致。

二、在/src/的其餘目錄下新建立一個目錄如:/thirdlib/,做爲另外一個package,而後在目錄下新建一個main.go文件,並導入剛纔下載的第三方package

  

這裏引入的第三方package 是一個全路徑,這個路徑就是從 $GOPATH/src/開始算起。因此,要寫的路徑就是從/src/開始。

相關文章
相關標籤/搜索