Ruby 3-2
こんにちは!
小雨の中の散歩も乙なものです。
代入演算子
i +=1 は i = i + 1
などは直感的で理解しやすいです。
少しややこしい参照値の話を確認しておきます。
object_id は参照を返すメソッドです。
「変数data2に変数data1を代入する」とは値のコピーでなく参照値のコピーであるとのことです。
今回であれば、参照値が一致しています。
中身の要素の変更、これは問題ありません。
配列を変更すると、参照値そのものも変化するため違う結果になっています。
Integer型やFloat型の一部などは実際の値が変数に格納されます。
このような実装を即値と呼びます。
num1 の値が更新されたので、参照値も変更されています。
整数型はイミュータブル型、一度作成したオブジェクトの変更は不可能です。
一方、配列はミュータブル型、オブジェクトの中身の書き換えが可能です。
代入に関しても、何点か整理しておきます。
定数なので、配列そのものの再代入はできません。エラーでした。
定数を変更していますが、エラーにはなりませんでした。
配列の内容だけの書き換えでは定数違反と見なされないとのことです。
多重代入という機能です。
配列を指定しての代入も可能です。
要素数が一致していなくても大丈夫です。
余った変数は空になります。
変数にアスタリスクを付与することで、分解されなかった残りの要素をまとめて配列として切り出すことが可能です。
ただし、複数の要素にアスタリスクを指定することはできません。
該当する要素がなければ、空の配列が生成されます。
アスタリスクのみを利用することで、いらない要素をカットできます。
入れ子の配列を多重代入することも可能です。
入れ子の配列を展開する場合は丸カッコを使用します。
値を入れ替える、スワッピングも可能です。
色々と書きました。
値の取得などと関わってくる大切な内容でした。
ではでは。