Go 1.18 にアップグレードするときに「any」を使用すると「宣言されていない名前」エラーが発生するのはなぜですか?
Go プロジェクトをバージョン 1.18 にアップグレードするとき、 「interface{}」の代わりに新しい「any」タイプを利用しようとすると、次のようなエラーが発生します:
undeclared name: any (requires version go1.18 or later)
このエラーは、プロジェクトに関連付けられた「go.mod」ファイルが 1.18 より前の Go バージョンを指定しているために発生します。 「any」タイプは Go 1.18 で導入され、以前のバージョンを指定するモジュールはそれを使用できません。
解決策
この問題を解決するには、「 go.mod」ファイルを使用すると、Go バージョン 1.18 以降を使用できます。たとえば、次を変更します:
module example.com/foo go 1.17
module example.com/foo go 1.18
Justification
各モジュールの「go.mod」ファイルは、コンパイル中に使用される Go 言語バージョン。モジュール作成者の裁量で新機能を段階的に採用できます。 [Go 言語の変更設計ドキュメント](https://go.dev/design/go-version-check) で説明されているように、これによりコンポーネントとモジュール間の互換性が確保されます。
以上がGo 1.18 で「Undeclared Name: any」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。