Arrays in Slices in Go konvertieren
Beim Arbeiten mit Arrays und Slices in Go kann eine Konvertierung zwischen den beiden Datentypen erforderlich sein . Dies kann nützlich sein, wenn Daten zwischen Funktionen übergeben werden, die unterschiedliche Eingabetypen erwarten.
Angenommen, Sie haben eine Funktion, die ein Array von Bytes zurückgibt:
func Foo() [32]byte { ... }
Möglicherweise müssen Sie dieses Ergebnis übergeben zu einer anderen Funktion, die ein Byte-Segment erwartet:
func Bar(b []byte) { ... }
Wenn Sie einfach versuchen, Bar(d) aufzurufen, wobei d das von Foo zurückgegebene Array ist, erhalten Sie a Typkonvertierungsfehler. Dies liegt daran, dass Arrays und Slices in Go unterschiedliche Typen sind.
Um ein Array in ein Slice umzuwandeln, können Sie die [:]-Syntax verwenden. Dadurch wird ein Slice erstellt, der auf die zugrunde liegenden Array-Daten verweist. Zum Beispiel:
d := Foo() Bar(d[:])
Dadurch wird ein Teil der Daten aus dem Array d an die Funktion Bar übergeben. Das Slice verweist auf denselben zugrunde liegenden Puffer wie das Array, sodass keine Datenkopien stattfinden.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Go-Array in ein Slice konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!