Warum führt „any“ beim Upgrade auf Go 1.18 zu „Undeclared Name“-Fehlern?
Beim Upgrade Ihres Go-Projekts auf Version 1.18 und Wenn Sie versuchen, den neuen Typ „any“ als Ersatz für „interface{}“ zu verwenden, kann ein ähnlicher Fehler auftreten zu:
undeclared name: any (requires version go1.18 or later)
Dieser Fehler tritt auf, weil die mit Ihrem Projekt verknüpfte Datei „go.mod“ eine Go-Version kleiner als 1.18 angibt. Der Typ „any“ wurde in Go 1.18 eingeführt und Module, die frühere Versionen angeben, dürfen ihn nicht verwenden.
Lösung
Um dieses Problem zu beheben, aktualisieren Sie „ go.mod“-Datei, um Go Version 1.18 oder höher zu verwenden. Ändern Sie beispielsweise Folgendes:
module example.com/foo go 1.17
in:
module example.com/foo go 1.18
Begründung
Die Datei „go.mod“ jedes Moduls steuert die Go-Sprachversion, die während der Kompilierung verwendet wird und die die schrittweise Übernahme neuer Funktionen durch Modulautoren nach eigenem Ermessen ermöglicht. Wie im [Go-Sprachänderungen-Designdokument](https://go.dev/design/go-version-check) erläutert, gewährleistet dies die Kompatibilität zwischen Komponenten und Modulen.
Das obige ist der detaillierte Inhalt vonWarum erzeugt Go 1.18 die Fehlermeldung „Undeclared Name: any'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!