arr := [5]float64{1,2,3,4,5}
x := arr[0:5]
arr[2] = 10
x[2] тожэ будет равен 10 и наооборот, а как без цыкла создать новый срез ни к чему не привязаный из массива как тут x := arr[0:5]
package main
import (
"fmt"
)
func main() {
arr := [5]float64{1, 2, 3, 4, 5}
i := 3
x := append([]float64{}, arr[:i]...)
x[2] = 42
fmt.Println(x)
fmt.Println(arr)
}