Heim > Artikel > Backend-Entwicklung > Warum meldet Go beim „Anhängen“ einen Fehler bei nicht verwendeten Variablen, bei der direkten Slice-Zuweisung jedoch nicht?
Go-Kompilierungsfehler für nicht verwendetes „Anhänge“-Ergebnis
Der Go-Compiler gibt möglicherweise einen Kompilierungsfehler für nicht verwendete Variablen aus, wenn er an ein Slice angehängt wird und nicht das Ergebnis nutzen. Dieses Verhalten unterscheidet sich von anderen Sprachen, die einen Fehler bei nicht verwendeten Variablen auslösen, wenn eine Variable deklariert wird, ohne sie zu verwenden.
In Go wird das Vorhandensein einer nicht verwendeten Variablen nur dann als Fehler gekennzeichnet, wenn die Variable nicht gelesen wird. Das Anhängen an ein Slice mit append() beinhaltet das Lesen des Slice, während es an die Funktion übergeben wird. Ein ähnliches Verhalten wird beobachtet, wenn einem Kartenschlüssel ein Wert zugewiesen wird.
Beachten Sie den folgenden Code:
var mySlice []string mySlice = append(mySlice, "halo")
In diesem Beispiel wird mySlice während des Anhängevorgangs gelesen, auch wenn das Ergebnis so ist nicht anderweitig verwendet. Daher generiert dieser Code keinen Fehler durch eine nicht verwendete Variable.
Das Zuweisen eines Werts zu einem Slice mithilfe des Direktzuweisungsoperators erfordert jedoch nicht das Lesen des Slice-Headers. Infolgedessen erzeugt der folgende Code einen Fehler bei nicht verwendeten Variablen:
var i = []int{0} i = []int{1}
Um diesen Fehler zu beheben, kann das Slice verwendet werden, bevor es neu zugewiesen wird. Zum Beispiel:
var i = []int{0} i[0] = 1 i = []int{1}
Dieser Code wird erfolgreich kompiliert, da i[0] = 1 den Slice-Header liest.
Das obige ist der detaillierte Inhalt vonWarum meldet Go beim „Anhängen“ einen Fehler bei nicht verwendeten Variablen, bei der direkten Slice-Zuweisung jedoch nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!