- 61 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:19:27 ]
- 他の言語にあるセッターやゲッターというものはRubyには存在しない
あれはただの値を返すメソッドで、attr* はメソッド定義を肩代わりする略記に過ぎない module AttrReader def attr_reader(arr) arr.each do |method_name| eval("def #{method_name} return @#{method_name} end") end end end class C include AttrReader attr_reader([:x]) end と class C attr_reader :x end はリクツ上おおむね同じ動作をする attr* を使う動作上のメリットというのは何もない メソッド定義書くのがちょっと短縮されるというだけだったりする
|

|