中級 › スライスが元の配列を共有していて予期せぬ書き換えが起きる › パターン3
スライスが元の配列を共有していて予期せぬ書き換えが起きる
スライスを別のスライスから切り出すと、多くの場合は同じ配列を参照したままになります。
1 package main 2 3 import "fmt" 4 5 func main() { 6 original := []int{5, 6, 7, 8, 9} 7 ________________________________________ ^ 8 sub[0] = 99 9 fmt.Println(original) 10 }
出力: [5 6 99 8 9]
空欄を埋めて実行を通す
サブスライスの3番目の要素(添字2)を書き換えたつもりが、元のoriginalの該当位置も変わってしまいます。
次の問題