我有一個這樣結構的項目-- go.mod-- main.go-- hello.go-- folder1 -- test.go我想從主文件的 test.go 文件訪問 hloFunc。package folder1import "fmt"func hloFunc() { fmt.Println("Hello Function from sub directory")}我不明白導入模塊/包是如何工作的。我讀過文章,但從未理解任何東西。如果我能深入了解這里實際發生的事情,那將非常有幫助。這是我的 go.mod 文件module testModulego 1.17我可以通過簡單地在主文件中寫入函數名稱來訪問 hello.go 文件中的任何函數,但我也想從子目錄中訪問函數。我怎樣才能做到這一點?我應該在我的主文件中更改什么才能實現這一點package mainimport "testModule/folder1/"func main() { hloFunc()}
1 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
您的代碼有 2 個(至少)問題。第一個問題是main.go
. 你應該刪除它。
主程序
import "testModule/folder1"
第二個問題是您正試圖從另一個包中調用未導出的函數。要解決這個問題,您應該導出它(通過將函數名稱的第一個字母更改為大寫) test.go
func HloFunc() { fmt.Println("Hello Function from sub directory") }
并使用包名來調用它。
主程序
func main() { folder1.Hlofunc() }
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消