中級 › スライスが元の配列を共有していて予期せぬ書き換えが起きる › パターン1
スライスが元の配列を共有していて予期せぬ書き換えが起きる
スライスを別のスライスから切り出すと、多くの場合は同じ配列を参照したままになります。
1 package main 2 3 import "fmt" 4 5 func main() { 6 original := []int{1, 2, 3, 4, 5} 7 ________________________________________ ^ 8 sub[0] = 99 9 fmt.Println(original) 10 }
出力: [1 99 3 4 5]
空欄を埋めて実行を通す
original[1:3]は新しい配列を作らず元の配列を参照するため、subへの書き込みがoriginalにも反映されてしまいます。
次の問題