本文へスキップ

イミュータブルとは?

いみゅーたぶる

イミュータブルとは、一度生成されたオブジェクトや値がその後変更できない性質のことで、プログラミングの設計において安全性と予測可能性を高めます。

イミュータブル(immutable)とは、「変更不可能な」を意味する英語で、プログラミングにおいては一度作成されたオブジェクト変数の値が、その後いかなる操作によっても変更されない性質を指します。対義語はミュータブル(mutable:変更可能)です。

イミュータブルなオブジェクトを扱う場合、値を「変更」する代わりに新しいオブジェクトを生成します。例えばPythonの文字列型はイミュータブルであり、文字列に対して操作を加えると既存の文字列を変更するのではなく新しい文字列オブジェクトが返されます。

イミュータブルの主なメリットは以下の通りです。

  • スレッドセーフ:複数のスレッドが同時にアクセスしても値が変わらないため、競合状態が発生しない
  • 副作用の防止:関数に渡したオブジェクトが意図せず変更される心配がない
  • デバッグの容易さ:状態が変化しないため、プログラムの挙動が予測しやすい
  • キャッシュ・ハッシュ利用:値が不変のためハッシュキーとして使用でき、辞書やセットのキーに利用可能

関数型プログラミングではイミュータブルなデータが基本原則の一つとして扱われており、ReactのReduxなどのフロントエンド状態管理においても、状態をイミュータブルに扱うことがベストプラクティスとされています。

使い方・例文

「JavaのStringクラスはイミュータブルなので、文字列の連結操作では毎回新しいオブジェクトが生成される」というように、言語仕様の説明で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語