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)
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!