配列基礎レベル
次のプログラムを実行すると何が表示されますか?
charges = [3000, 1000, 2000] backup = charges charges.sort! p backup
- 1[3000, 1000, 2000]
- 2[1000, 2000, 3000]
- 3nil
- 4NoMethodError が発生する
解説
backup = charges により、backup は charges と同じ配列オブジェクトを参照します。sort! は元配列を直接並べ替える破壊的メソッドなので、charges が参照する配列そのものが [1000, 2000, 3000] に変わります。同じ配列を参照している backup から見ても、並び替え後の配列が表示されます。