首頁 > 後端開發 > Golang > 為什麼我的函數在單獨的 Go 套件中未定義?

為什麼我的函數在單獨的 Go 套件中未定義?

DDD
發布: 2024-12-16 06:51:10
原創
651 人瀏覽過

Why is my function in a separate Go package undefined?

單獨套件中的函數未定義

在給定的程式碼結構中,單獨的lib.go 檔案中定義的函數未被識別為已定義當從main.go 檔案呼叫時。讓我們探討這個問題並找到解決方案。

嘗試使用 go build main.go 編譯 main.go 時,遇到錯誤「undefined: Test」。這是因為 Test 函數是在 lib.go 中定義的,而 lib.go 與 main.go 位於不同的套件(名為「main」)中。

在 Go 中,包是獨立的命名空間,函數定義在一個包中如果沒有明確導入,則無法直接由另一個包中的函數存取。要解決此問題,您可以執行以下任一操作:

  • 使用更具體的導入語句:在main.go 中,透過新增import "packagetest/ 來導入lib包lib”位於檔案開頭。
  • 使用完整的套件路徑: 在 main.go 中,將 Test() 替換為packagetest.lib.Test() 明確指示定義 Test 函數的完整套件路徑。
  • 建立整個專案: 而不是 go build main.go,執行 go build at專案根目錄以建置所有必要的檔案。這將允許編譯器找到並導入 lib.go 檔案。

以上是為什麼我的函數在單獨的 Go 套件中未定義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板