Zugriff auf anonyme Strukturwerte in der Golang-Typ-Schnittstelle {}
Sie haben ein Problem beim Zugriff auf die anonyme Struktur, die Sie an die NewJob-Funktion übergeben haben aus der benutzerdefinierten Funktion heraus. Der angezeigte Fehler „Schnittstelle {} ist Schnittstelle ohne Methoden“ weist darauf hin, dass der Schnittstellentyp {}, mit dem Sie arbeiten, über keine definierten Methoden verfügt, sodass kein direkter Zugriff auf Felder möglich ist.
An Um dieses Problem zu lösen, müssen Sie den Wert „interface{}“ in einen kompatiblen Typ umwandeln, beispielsweise in die anonyme Struktur, zu der Ihre Daten gehören. Auf diese Weise können Sie auf das gewünschte Feld zugreifen. Hier ist der angepasste Code:
<code class="go">func Custom(name string) interface{} { for i := range jobs { if jobs[i].name != name { continue } return jobs[i].custom } return nil } ... id := t.(struct{Id int}).Id</code>
Im obigen Code geben wir „assert t“ in eine Struktur mit einem Feld namens „Id“ ein. Dadurch können wir direkt auf das Id-Feld zugreifen und nun das erwartete Ergebnis 1 zurückgeben.
Das obige ist der detaillierte Inhalt vonWie greife ich in Golang auf anonyme Strukturwerte innerhalb einer „Schnittstelle{}' zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!