一、包的一些基本的概念
1、在同一個目錄下的所有go文件中,只能有一個main函數。如果存在多個main函數,則在編譯的時候會報錯
那么,在同一個目錄下的兩個go文件究竟是什么關系? 為什么會彼此影響呢?
這里要提到go package的兩個約束:
1、同一個目錄下的go文件,如果package是main,那么這個目錄下的go文件只能有一個main函數。
2、同一個目錄下的go文件,只能是一個package。 (注意: 這里說的是同一個目錄下的go文件,但不是同一個目錄下的其他目錄中的go文件)
那么問題來了,為什么需要package呢?
在一個項目中,會有很多個go文件,package的作用就是進行一個代碼分類組織
舉個例子:
1.在hello.go里面定義個main函數,引用了main的package。
2.在另一個echo.go里面,因為只能有一個main函數,所以這里只定義了變量 var X string = "chenchao"
3.那么在hello.go里面就可以直接用另一個文件中的X變量了
package的作用:
1、同一個package下可以共享變量
2、同一個package下可以共享函數
二、一個在線的package的幫助文檔
http://godoc.org/+包的名稱
三、引入第三方的package
例如: 引入github下的一個庫
1、go get github.com/icexin/golib
這一步操作就是講git上的庫下載到本地,你會發現這條命令會將package默認下載到 $GOPATH下的/src/下,並與package的目錄結構一致。
2、在/src/的其他目錄下新創建一個目錄如:/thirdlib/,作為另一個package,然后在目錄下新建一個main.go文件,並導入剛才下載的第三方package
這里引入的第三方package 是一個全路徑,這個路徑就是從 $GOPATH/src/開始算起。所以,要寫的路徑就是從/src/開始。