ミュータブル / イミュータブル


プログラミングの世界における、オブジェクトの種類の区分の一つ。
mutableとimmutable。ここではRubyを例にとります。

ミュータブル

「変更可能な」と言う意味
ミュータブルなオブジェクトには破壊的な変更が適用可能。
Rubyの文字列など(Stringクラス)

イミュータブル

「変更不可能な」と言う意味
イミュータブルなオブジェクトでは破壊的な変更が適用できない。

Rubyにおいて、常にイミュータブルなクラスや値はいくつかある。基本的なデータ型で言うと、次の4種類。

  1. 数値(Integerクラス・Floatクラス)
  2. シンボル(Symbolクラス)
  3. true/false(TrueClassとFalseClass)
  4. nil(NilClass)

余談

オブジェクト指向を理解する為には、書籍などのインプットと同時に手を動かしてアウトプットする必要があるなぁ。
オブジェクトIDとか、今回のミュータブルとかイミュータブルについては、概念的な感じもするけれど、知っていた方がイメージがつきやすいぜ。