読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

数値オブジェクトも凍結されているので破壊的メソッドは適用できない

以前、こんな記事を書きました。shuzo-kino.hateblo.jp

すると、 けんぼー (id:kemboorg)さんから、

instance_evalはオブジェクトの破壊的変更に当たるからではないでしょうか。
試してみたところinstance_evalが出来ないオブジェクトはfrozen?したところtrueが帰ってきて、
逆に出来るはずのオブジェクトもfreezeすることでinstance_eval出来なくなりました。

というコメントが。

頂いた情報をもとに、手元のpryで確認すると……

20.frozen?
#>>true

凍結されてますね(白目

というわけで、件の話は

  • 数値オブジェクトは凍結されている
  • 凍結されたオブジェクトは破壊的変更の類を受け付けない
  • instance_evalは破壊的メソッド

と、フツーに筋の通った簡単なお話しでした。