Heim > Backend-Entwicklung > Golang > Warum gibt mein Go-Code den Fehler „m2 kann Map[interface{}]interface{} nicht zugewiesen werden' aus?

Warum gibt mein Go-Code den Fehler „m2 kann Map[interface{}]interface{} nicht zugewiesen werden' aus?

Patricia Arquette
Freigeben: 2024-12-06 21:50:13
Original
277 Leute haben es durchsucht

Why Does My Go Code Throw a

So beheben Sie den Fehler „M2 kann nicht zu Map[interface{}]interface{} zugewiesen werden“

In Ihrem Code ist ein typbezogener Fehler aufgetreten Kompatibilität zwischen einer in der Tastenfunktion verwendeten Karte und der Karte, auf die Sie zugreifen möchten:

cannot use m2 (type map[int]interface {}) as type map[interface {}]interface {} in argument to Keys
Nach dem Login kopieren

Um dieses Problem zu beheben, sollten Sie Folgendes beachten Folgendes:

Golangs Typsystem und Generics

  • Golang ist eine statisch typisierte Sprache, was bedeutet, dass explizite Typdefinitionen erforderlich sind.
  • Golang unterstützt daher keine Generics Sie können keine Funktion mit generischen Typen definieren.

Typkompatibilität

In In Ihrem Code ist die Funktion „Keys“ so definiert, dass sie mit einer Karte vom Typ „map[interface{}]interface{} funktioniert, während Sie eine Karte vom Typ „map[int]interface{}“ verwenden. Diese Typen sind nicht kompatibel, da die Schlüsseltypen unterschiedlich sind.

Optionen zur Lösung

Es gibt mehrere Möglichkeiten, dieses Problem zu beheben:

Option 1: Ändern Sie die Tasten Funktion

  1. Ändern Sie die Funktionsdefinition, um eine Karte des Typs zu akzeptieren map[int]interface{}:
func Keys(m map[int]interface{}) []interface{} {
    // Implement function
}
Nach dem Login kopieren

Option 2: Karte ändern

  1. Ändern Sie den Typ Ihrer Karte in Karte[ interface{}]interface{}:
m2 := map[interface{}]interface{}{
    2: "string",
    3: "int",
}
Nach dem Login kopieren

Option 3: Reflection verwenden (Nicht empfohlen)

  1. Verwenden Sie das Reflect-Paket, um auf die Kartenschlüssel zuzugreifen. Dieser Ansatz bringt jedoch Leistungseinbußen mit sich.

Denken Sie daran, dass die Typkompatibilität in Golang von entscheidender Bedeutung ist. Stellen Sie sicher, dass die Typen in Ihrem Code mit den erwarteten Typen übereinstimmen, um solche Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Go-Code den Fehler „m2 kann Map[interface{}]interface{} nicht zugewiesen werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage