使用 Go 時,遵守既定約定至關重要。然而,在有效實施之前,理解這些約定至關重要。本文解決了有關 Go 包結構的常見問題。
設定:依照建議的項目結構,我們有:
$GOPATH/ src/ github.com/ username/ projectname/ main.go numbers/ rational.go real.go complex.go
ma in.go:
package main import ( "fmt" "./numbers" ) func main() { fmt.Println(numbers.Real{2.0}) }
問題:
1。 package.go 檔案
每個套件目錄都需要一個 package.go 檔案的假設是不正確的。在 Go 中,單一目錄中的檔案會自動分組到一個套件中。不需要建立package.go檔。
2.匯入套件內的檔案
Go 不支援匯入檔案。應直接匯入包號,而不是像rational.go、real.go和complex.go這樣的單獨檔案。在我們的範例中,刪除./ 前綴並使用import "github.com/username/projectname/numbers".
3.共用類型
像Real 這樣的類型應該定義在套件內的檔案中,例如real.go。由於這些檔案屬於同一個套件,因此不需要額外的導入語句。在 main.go 中存取 Real 類型為 fmt.Println(numbers.Real{2.0}) 是正確的。
以上是Go 套件結構:我們是否需要 `package.go` 文件,如何匯入內部文件,以及我們可以跨文件存取類型嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!