0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

いいコード悪いコードまとめ4章不変の活用

Last updated at Posted at 2023-07-16

変数の値を変更することができることを可変(ミュータブル)と呼び、その反対を不変(イミュータブル)と呼ぶ。

変数がミュータブルだとこの値になるはずと意図して実装したにも関わらず、意図しないうちに値が変わってしまうという事態につながってしまう。

再代入していないか

以下のようにイミュータブルにしていないと上書きができてしまう。

x = 10
y = 20

x = y

puts x # 20
puts y # 20

不変と可変の取り扱い方針

デフォルトは不変にしているか

定数の意味が変化しなくなるので混乱を避けられる
挙動が安定し、結果を予測しやすくなる
コードの影響範囲が限定的になり保守が容易になる

可変にしてもよいとき

不変が望ましくない場合は

  • パフォーマンスに問題が生じるケース
    例えば大量のデータの高速処理や画像処理リソース制約の厳しい組み込みソフトウェアなどで可変が必要なこともある。

  • スコープが局所的なケース
    ループ処理のスコープでしか使われないことが確実がローカル変数ならば可変にしてもよい

まとめ

基本的に変数は不変にすること。ただし、一部例外については可変でも可能

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?