かるーくRuby #4 イミュータブル

こんにちは。

今日はオブジェクトの変更可否について見たいと思います。
変更できるオブジェクトをミュータブル、変更できないオブジェクトをイミュータブルって言います。

基本的なデータ型では下記の4つがイミュータブル。
・数値
・シンボル
・true/false
・nil

これ以外はミュータブルです。
Rubyで定数を定義しても上記以外のオブジェクトだとミュータブルです。

定数のくせに破壊的に変更できちゃう。

ので、イミュータブルなオブジェクトに変更しちゃいましょう。

定数を破壊しようなんていう人はいないと思いますが、
念の為、freezeして変更できないようにしておきましょう。

あ、freezeしても下みたいに定数の入れ物に別のオブジェクトを入れることはできるので注意ですね。
(Warningは出ると思いますが。)

そもそもオブジェクトと入れ物は別物なので、ごっちゃにならないように気をつけましょう。

ではまた!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です