公式docに書かれてることでもあるんですが、sliceにはcopyというまんまなことをするメソッドがあるんですが、これは固定長でないと有効になりません。 具体的には以下のような挙動になります。 package mainimport “fmt”func main() { src := []int{1, 2, 3} dst := []int{} copy(dst, src) fmt.Println(src) fmt.Println(dst) // [1 2 3] // [] }もし全く同じsliceをcopyする挙動に変更するには、srcのsliceのlenをとって、それで固定長としてdstを生成しなければなりません。 package mainimport “fmt”func main() { src2 := []int{1, 2, 3} dst2 := make([]int, len(src