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 tmpist 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?
dstsollte aber mindestens so groß sein wie viele Elemente, die Sie kopieren möchten (für eine vollständige Kopie srcbedeutet dies len(dst) >= len(src)).
b := append([]int{}, a...)