Warum kopiert copy() keinen Slice in Go? Oder mache ich etwas falsch?
Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und bin auf ein unverständliches Problem bei der Arbeit mit Slices gestoßen. Ich musste einen Slice in einen anderen duplizieren, um später die Kopie unabhängig vom Original ändern zu können. Ich habe gelesen, dass es dafür die eingebaute Funktion `copy()` gibt.
Ich habe folgenden Code geschrieben:
```go
package main
import "fmt"
func main() {
original := []int{1, 2, 3, 4, 5}
var copySlice []int
copy(copySlice, original)
fmt.Println("original:", original)
fmt.Println("copy:", copySlice)
}
```
Aber als Ausgabe habe ich einen leeren Slice bekommen! `copySlice` blieb `[]`. Ich hatte erwartet, dass nach `copy()` in `copySlice` dieselben Elemente wie in `original` sein würden.
Dann habe ich eine andere Variante ausprobiert – zuerst einen Slice mit Länge, aber ohne Wert deklariert:
```go
copySlice2 := make([]int,
```