Ich muss eine Kopie eines Slice in Go erstellen und beim Lesen der Dokumente steht mir eine Kopierfunktion zur Verfügung.
Die integrierte Funktion zum Kopieren kopiert Elemente aus einem Quell-Slice in ein Ziel-Slice. (Als Sonderfall werden auch Bytes aus einer Zeichenfolge in ein Byte-Slice kopiert.) Quelle und Ziel können sich überschneiden. Kopieren gibt die Anzahl der kopierten Elemente zurück, dh das Minimum von len (src) und len (dst).
Aber wenn ich es mache:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
Mein tmp
ist leer wie vorher (ich habe sogar versucht es zu benutzen arr, tmp
):
[]
[1 2 3]
Sie können es auf dem Spielplatz überprüfen . Warum kann ich ein Slice nicht kopieren?
dst
sollte aber mindestens so groß sein wie viele Elemente, die Sie kopieren möchten (für eine vollständige Kopie src
bedeutet dies len(dst) >= len(src)
).
b := append([]int{}, a...)