ミュータブル/イミュータブルって何?
ミュータブル…変更可能な
イミュータブル…変更できない、不変の
このような意味になります。
イミュータブルなオブジェクトとは?
- 数値(integerクラス, Floatクラス)
- シンボル(Symbolクラス)
- true/false
- nil
上記4種類が該当します。
イミュータブルなオブジェクトには破壊的な変更ができません。
破壊的変更とは?
upcase! などの!が付いているものを破壊的変更となります。
例は以下のとおりです。
food = 'apple' puts food # => apple food.upcase! puts food # => APPLE
イミュータブルなオブジェクトに対しては上記のような変更が不可となります。
このへんは頭に入れておいたほうがよさそうですね。
何か参考になれば幸いです(*^^*)