中級 › スライスが元の配列を共有していて予期せぬ書き換えが起きる › パターン2
スライスが元の配列を共有していて予期せぬ書き換えが起きる
スライスを別のスライスから切り出すと、多くの場合は同じ配列を参照したままになります。
1 package main 2 3 import "fmt" 4 5 func main() { 6 original := []int{10, 20, 30, 40} 7 ________________________________________ ^ 8 sub[0] = 99 9 fmt.Println(original) 10 }
出力: [99 20 30 40]
空欄を埋めて実行を通す
独立したコピーが欲しい場合は、append([]int{}, ...)やcopy()で明示的に複製する必要があります。
次の問題