Heim > Backend-Entwicklung > Golang > Wie behebe ich den Fehler „Typschnittstelle {} unterstützt keine Indizierung' in Go?

Wie behebe ich den Fehler „Typschnittstelle {} unterstützt keine Indizierung' in Go?

Susan Sarandon
Freigeben: 2024-12-16 04:27:10
Original
974 Leute haben es durchsucht

How to Resolve the

Fehlerbehebung: „Typschnittstelle {} unterstützt keine Indizierung“ in Go

Beim Arbeiten mit einer Karte, die verschiedene Schnittstellen enthält{} Wenn Sie versuchen, sie zu indizieren, tritt möglicherweise ein Fehler auf, insbesondere „Typschnittstelle {} unterstützt keine Indizierung.“ Dies liegt daran, dass der Typ interface{} die Indizierung grundsätzlich nicht unterstützt.

Um Elemente aus dieser Karte erfolgreich zu indizieren und darauf zuzugreifen, ist es notwendig, den Wert interface{} explizit in den erwarteten Typ, z. B. einen Slice, zu konvertieren . Diese Konvertierung kann durch Angabe des Zieltyps in eckigen Klammern erreicht werden.

Betrachten Sie beispielsweise den folgenden Go-Code:

package main

import "fmt"

type Host struct {
    Name string
}

func main() {
    Map := make(map[string]interface{})
    Map["hosts"] = []Host{Host{"test.com"}, Host{"test2.com"}}

    // Convert interface{} to a slice of Host
    hm := Map["hosts"].([]Host)
    fmt.Println(hm[0])
}
Nach dem Login kopieren

In diesem Beispiel wird die Karte „Map“ mit gefüllt ein Stück Host-Strukturen. Um auf das erste Element des Slice zuzugreifen, müssen Sie den Wert interface{} in „Map['hosts']“ in den Typ []Host konvertieren. Dies geschieht mit dem Ausdruck:

hm := Map["hosts"].([]Host)
Nach dem Login kopieren

Mit der Konvertierung können Sie wie auf jedes Standard-Go-Slice auf die Elemente des Slice zugreifen. In diesem Fall lautet die Ausgabe „test.com“, da es sich um das erste Element im Host-Slice handelt.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Typschnittstelle {} unterstützt keine Indizierung' in Go?. 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