我不明白包/項目目錄結構是如何工作的。我正在關注這 2 個鏈接,在此處輸入鏈接描述,在此處輸入鏈接描述我的 Go 工作區位于 /workspace/golang 下。我的$GOPATH等于/workspace/golang我的目錄結構如下:/workspace/golang/src/Tutorial/...tutorial_main.go <- Default 'Hello World' program...library/......arithmetic.go算術.go 的內容:package libraryfunc addNum(a int, b int) int { return a + b}我cd進入庫文件夾并運行go build arithmetic現在,我不知道如何在tutorial_main.go 文件中使用算術.go。我嘗試了以下操作:import "library"fmt.Println("Result : ", library.addNum(1,4))import "Tutorial/library"fmt.Println("Result : ", library.addNum(1,4))import "src/Tutorial/library"fmt.Println("Result : ", library.addNum(1,4))兩者都不起作用。它一直說找不到library 我不明白我做錯了什么。
2 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
根據您的設置,包導入路徑為:
import "Tutorial/library"
并且您應該將要在庫包中導出的名稱大寫,以便您可以從其他包訪問它們。
一般情況下,導入路徑如果是本地則為包的文件路徑(相對于$GOPATH),否則為包的遠程路徑,如github.com/myaccount/package
. 諸如此類的簡單導入名稱import library
是為內置包保留的。相對導入路徑也可以,但不推薦使用,即import ./library
.
也就是說,模塊系統 $GOPATH 不再使用。我建議您閱讀模塊以及如何在 $GOPATH 之外工作。

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
在 Go 中,您想要導出(在包外部可用)的變量和函數需要以大寫字母開頭。
package library
func privateAddNum(a int, b int) int {
return a + b
}
func PublicAddNum(a int, b int) int {
return a + b
}
privateAddNum是一個未導出的函數,只能在library包內訪問。
PublicAddNum是一個導出函數,可以被導入的外部包訪問library。
- 2 回答
- 0 關注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消