まつもと ゆきひろです

In message "[ruby-list:33853] arguments for def [Re: 右辺の値なしでも実行可能? ]"
    on 02/02/12, Masaaki Sakano <mas / star.le.ac.uk> writes:

|上のような"ミス"を避けるのに、何かいい工夫などあれば、お教え願えたら
|ありがたいです。私が思いついたところでは、def の中の最初で、.clone
|するか(美しくない?)、すぐ .freeze しておいて、誤って破壊的メソッドを
|使った時にエラーが出るようにするか(複雑な分岐があれば見過ごす可能性
|あり)、とかですが。

defの内部で(引数で渡されたオブジェクトに対して)破壊的なメソッ
ドを適用しないってのが正しいんじゃないかと。デバッグ時には
freezeするってのも有効かもしれません。が、本番では外した方が
良いでしょう。freezeするってのも、オブジェクトの状態をグロー
バルに変えることには違いないんで。