匯入包

你可以使用以下語句匯入單個包:

import "path/to/package"

或將多個匯入組合在一起:

import (
    "path/to/package1"
    "path/to/package2"
)

這將在 $GOPATH 中的 .go 檔案中查詢相應的 import 路徑,並允許你通過 packagename.AnyExportedName 訪問匯出的名稱。

你還可以通過使用 ./預先包裝來訪問當前資料夾中的本地包。在具有以下結構的專案中:

project
├── src
│   ├── package1
│   │   └── file1.go
│   └── package2
│       └── file2.go
└── main.go

你可以在 main.go 中呼叫它來匯入 file1.gofile2.go 中的程式碼:

import (
    "./src/package1"
    "./src/package2"
)

由於包名稱可能會在不同的庫中發生衝突,因此你可能希望將一個包別名為新名稱。你可以通過在 import-statement 前新增你要使用的名稱來執行此操作。

import (
    "fmt" //fmt from the standardlibrary
    tfmt "some/thirdparty/fmt" //fmt from some other library
)

這允許你使用 fmt.*訪問以前的 fmt 包,使用 tfmt.*訪問後一個 fmt 包。

你還可以將包匯入到自己的名稱空間中,這樣你就可以使用單個點作為別名來引用不帶 package. 字首的匯出名稱:

import (
    . "fmt"
)

上面的示例將 fmt 匯入全域性名稱空間,並允許你直接呼叫 PrintfPlayground

如果匯入包但不使用任何匯出的名稱,Go 編譯器將列印錯誤訊息。為了避免這種情況,你可以將別名設定為下劃線:

import (
    _ "fmt"
)

如果你不直接訪問此軟體包但需要執行 init 函式,這將非常有用。

注意:

由於程式包名稱基於資料夾結構,因此資料夾名稱和匯入引用中的任何更改(包括區分大小寫)都會導致 Linux 和 OS-X 中的編譯時錯誤不區分大小寫的匯入衝突,這很難跟蹤並修復(錯誤訊息對凡人來說有點神祕,因為它試圖傳達相反的情況 - 由於區分大小寫,比較失敗)。

例如:“path / to / Package1”vs“path / to / package1”

例項: https//github.com/akamai-open/AkamaiOPEN-edgegrid-golang/issues/2