Ruby 初心者スレッド Part 23at TECHRuby 初心者スレッド Part 23 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト714:デフォルトの名無しさん 08/12/22 01:38:05 要素を変更したいんですー h = {:ary => 1}.freeze h[:ary] = 2 715:デフォルトの名無しさん 08/12/22 01:46:09 Are you happy? 716:デフォルトの名無しさん 08/12/22 02:00:18 じゃあdupしてfreezeされてないコピーに差し替えれば? と言いたいけど別のところに参照されちゃってるんだろうなぁ。 そもそもfreezeしてるコードをいじれるならfreezeやめれば いいじゃんと思うんだけど、freezeしないといけない理由を詳しく。 717:デフォルトの名無しさん 08/12/22 03:08:37 文字通り邪悪だけど、 evil-ruby gemをインストールして h.unfreeze 718:デフォルトの名無しさん 08/12/22 06:52:25 >>710 出来ないことはないけど、不可能と考えて別の方法を探すべきだと思われる そもそも、freezeされてるってことはそれなりの理由があるんじゃないのか? 719:デフォルトの名無しさん 08/12/22 10:55:22 >>710 びみょーに違うけど、こんなん(不完全だけど)をextendして freezeを遅延させるとか…? やっぱ変だな # 一箇所だけ変えたいところのキーは'hoge'決めうち module HashLasyFreeze def []=(key, val) ret = super freeze if key == 'hoge' ret end end 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch