當升級到 Go 1.18 時,為什麼「any」會導致「Undeclared Name」錯誤?
當你的Go 專案升級到1.18 版本時,嘗試利用新的“any”類型來替代“interface{}”,您可能會遇到類似的錯誤to:
undeclared name: any (requires version go1.18 or later)
出現此錯誤是因為與您的項目關聯的「go.mod」檔案指定的Go 版本低於1.18。 「any」類型是在 Go 1.18 中引入的,指定早期版本的模組無法使用它。
解決方案
要解決此問題,請更新「 go.mod」 檔案以使用 Go 版本 1.18 或更高版本。例如,將以下內容改為:
module example.com/foo go 1.17理由
module example.com/foo go 1.18
每個模組的「go.mod」檔案控制編譯期間使用的Go語言版本,允許模組作者自行決定逐步採用新功能。如[Go語言變更設計文件](https://go.dev/design/go-version-check)中所述,這確保了元件和模組之間的相容性。
以上是為什麼 Go 1.18 會產生「Undeclared Name: any」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!