【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】at TECH
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 - 暇つぶし2ch417:デフォルトの名無しさん
08/05/06 00:47:39
>>396
なるほどsuperは確かに無関係だった。

383も言ってるように def...endという定義文じゃなくてメソッドなら期待したように動く。

class Foo
  def define_hello
    self.class.send(:define_method, :hello) do
      puts "Hello"
    end
  end
end

class Bar < Foo
end

kind_of_foo = Bar.new
kind_of_foo.define_hello
kind_of_foo.hello #=> Hello
foo = Foo.new
foo.hello #=> undefined method `hello' for #<Foo:0xb7d19734> (NoMethodError)

メソッドの可視性はあんまり気にしない、
動的にメソッド定義したいならeval系のメソッドを使う、
という脳なので入れ子defの挙動がどうであれ、あんまり困らない。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch