Ruby 初心者スレッド Part 30at TECHRuby 初心者スレッド Part 30 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト59:デフォルトの名無しさん 09/08/11 08:02:55 「インスタンス変数が初めて使用されたときにアクセサメソッドを定義させることはできませんか」 というような質問は年に何回か見るな 動的言語を名乗ってる以上できても面白そうだが、現行では残念ながらできない クラス設計者が @foo = 100 とする代わりに毎回 instance_variable_initialize(:foo, 100) と書くようにする、みたいな 予防法的なめんどくさい手順しか思いつかん あ、 instance_variable_initialize は自作してね 60:デフォルトの名無しさん 09/08/11 09:13:07 OpenStructは? 61:デフォルトの名無しさん 09/08/11 09:16:51 そのへんは > foo.xxx = foo.xxx + 123 を実現するということがどんだけ重要で取替不可かによるな これの実現のためにどんだけの不便を強いる覚悟があるかみたいな 62:デフォルトの名無しさん 09/08/11 10:01:18 >>59はostruct.rbを写経してこい 63:デフォルトの名無しさん 09/08/11 10:58:56 >>57 デフォルトの値が0っぽいから… fooのクラスがFooとすると class Foo def initialize @vals=Hash.new(0) end def method_missing(name,*args) x=name.to_s if name[-1..-1]=='=' then @vals[name[0..-2]]=args[0] else @vals[name] end end end これでよかろうか(引数の数の検証は自分で書いてちょ) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch