Heim > Backend-Entwicklung > Golang > Warum schlägt die Typzusicherung bei einem Abschnitt von Schnittstellenwerten fehl?

Warum schlägt die Typzusicherung bei einem Abschnitt von Schnittstellenwerten fehl?

DDD
Freigeben: 2024-12-07 14:13:15
Original
802 Leute haben es durchsucht

Why Does Type Assertion Fail on a Slice of Interface Values?

Typ Assertion eines Slice von Schnittstellenwerten

Beim Versuch, Assertion von einem Slice von Node zu einem Slice von Symbol einzugeben, ist ein Fehler aufgetreten Es wird ein Fehler festgestellt, der darauf hinweist, dass die Typzusicherung ungültig ist. Dies liegt daran, dass ein Slice von Schnittstellenwerten selbst kein Schnittstellentyp ist.

Ein Slice ist ein eindeutiger Nicht-Schnittstellentyp, während ein Schnittstellentyp eine Reihe von Methoden definiert. Daher macht es keinen Sinn anzunehmen, dass ein Slice von Schnittstellenwerten auch ein Schnittstellentyp ist.

Um dieses Problem zu lösen, können Sie, anstatt den Slice von Node direkt zu bestätigen, jedes Element des Slice konvertieren auf den gewünschten Typ, in diesem Fall Symbol, und erstellen Sie ein neues Segment des gewünschten Typs. Beispielsweise würde der folgende Code das gewünschte Ergebnis erzielen:

symbols := make([]Symbol, len(args))
for i, arg := range args { symbols[i] = arg.(Symbol) }
fixed, rest := parseFormals(symbols)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum schlägt die Typzusicherung bei einem Abschnitt von Schnittstellenwerten fehl?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage