首頁 >後端開發 >Golang >go語言中套件導入的一些問題

go語言中套件導入的一些問題

尚
轉載
2019-12-14 16:40:072172瀏覽

go語言中套件導入的一些問題

import

Go 使用套件(package)作為基本單元來組織原始程式碼,所有語法可見度均定義在package 這個等級。同一 package 下面,可以有非常多的不同文件,只要每個文件屬於相同的 package name。

每個原始碼檔案的第一行必定要透過以下語法定義屬於哪個package,

package xxx

然後就是導入本源碼檔案所使用的標準包或第三方包,即

import (
    "a/b/c"
    "fmt"
)

標準函式庫會從 GO 的安裝目錄下尋找,而第三方函式庫會從開發者定義的 $GOPATH 下尋找。當都找不到時,編譯器就會報錯。在使用第三方套件的時候,當原始碼和 .a 都已安裝的情況下,編譯器連結的是原始碼。

註: 上面語句中 a/b/c 最後的 c 為目錄名,不是 package name。

在對檔案中的方法進行呼叫時,使用以下格式:

package.Methodxxx()

同一資料夾下的多個檔案的package 一般定義為該資料夾的名字,但是也有例外,例如上面的栗子中,c 檔案下的所有檔案的package 都定義為fux,那麼在呼叫這個資料夾下檔案的方法時,只能使用 fux.Methodxxx(),而不是 # c..Methodxxx()

一個非main套件在編譯後會產生一個.a檔案(在臨時目錄下生成,除非使用go install安裝到 $GOROOT 或$GOPATH下,否則你看不到 .a),用於後續執行程式連結使用。

vendor

Go 在 1.5 的版本加入的 vendor 的支援來做套件管理。 1.5 版本要設定 GO15VENDOREXPERIMENT="1" 來支援這個特性,1.6版本將其作為預設參數配置。以下對於包含 vendor 目錄的套件導入路徑規則大致如下。

├── d
    ├── mypkg
    |     └── main.go
    └── vendor
          └── q
              ├── q.go

當上述目錄結構,在 main.go 中 import q時,後首先從 vendor 目錄下查找,若找不到,會從 $GOPATH 目錄下查找,再找不到的話,編譯器就報錯了。

更多go語言知識請關注go語言教學專欄。

以上是go語言中套件導入的一些問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:studygolang.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多