GOPATH設置
go 命令依賴一個重要的環境變量:$GOPATH1
(注:這個不是Go安裝目錄。下面以筆者的工作目錄為說明,請替換自己機器上的工作目錄。)
在類似 Unix 環境大概這樣設置:
為了方便,應該把新建以上文件夾,并且把以上一行加入到 .bashrc 或者 .zshrc 或者自己的 sh 的配置文件中。
Windows 設置如下,新建一個環境變量名稱叫做GOPATH:
GOPATH允許多個目錄,當有多個目錄時,請注意分隔符,多個目錄的時候Windows是分號,Linux系統是冒號,當有多個GOPATH時,默認會將go get的內容放在第一個目錄下
以上 $GOPATH 目錄約定有三個子目錄:
1.src 存放源代碼(比如:.go .c .h .s等)
2.pkg 編譯后生成的文件(比如:.a)
3.bin 編譯后生成的可執行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)
以后我所有的例子都是以mygo作為我的gopath目錄
應用目錄結構
建立包和目錄:$GOPATH/src/mymath/sqrt.go(包名:"mymath")
以后自己新建應用或者一個代碼包都是在src目錄下新建一個文件夾,文件夾名稱一般是代碼包名稱,當然也允許多級目錄,例如在src下面新建了目錄$GOPATH/src/github.com/astaxie/beedb 那么這個包路徑就是“github.com/astaxie/beedb”,包名稱是最后一個目錄beedb
執行如下代碼:
新建文件sqrt.go,內容如下:
func Sqrt(x float64) float64 {
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
這樣我的應用包目錄和代碼已經新建完畢,注意:一般建議package的名稱和目錄名保持一致
編譯應用
上面我們已經建立了自己的應用包,如何進行編譯安裝呢?有兩種方式可以進行安裝
1、只要進入對應的應用包目錄,然后執行go install,就可以安裝了
2、在任意的目錄執行如下代碼go install mymath
安裝完之后,我們可以進入如下目錄:
這個.a文件是應用包,那么我們如何進行調用呢?
接下來我們新建一個應用程序來調用
新建應用包mathapp:
// $GOPATH/src/mathapp/main.go源碼:
import (
"mymath"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v/n", mymath.Sqrt(2))
}
如何編譯程序呢?進入該應用目錄,然后執行go build,那么在該目錄下面會生成一個mathapp的可執行文件
輸出如下內容
如何安裝該應用,進入該目錄執行go install,那么在$GOPATH/bin/下增加了一個可執行文件mathapp,這樣可以在命令行輸入如下命令就可以執行
也是輸出如下內容
獲取遠程包
go語言有一個獲取遠程包的工具就是go get,目前go get支持多數開源社區(例如:github、googlecode、bitbucket、Launchpad)
go get -u 參數可以自動更新包,而且當go get的時候會自動獲取該包依賴的其他第三方包
通過這個命令可以獲取相應的源碼,對應的開源平臺采用不同的源碼控制工具,例如github采用git、googlecode采用hg,所以要想獲取這些源碼,必須先安裝相應的源碼控制工具
通過上面獲取的代碼在我們本地的源碼相應的代碼結構如下:
go get本質上可以理解為首先第一步是通過源碼工具clone代碼到src下面,然后執行go install
在代碼中如何使用遠程包,很簡單的就是和使用本地包一樣,只要在開頭import相應的路徑就可以
程序的整體結構
通過上面建立的我本地的mygo的目錄結構如下所示
[1] Windows系統中環境變量的形式為%GOPATH%,本書主要使用Unix形式,Windows用戶請自行替換。
新聞熱點
疑難解答