當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Module.define_method用法及代碼示例


本文簡要介紹ruby語言中 Module.define_method 的用法。

用法

define_method(symbol, method) → symbol
define_method(symbol) { block } → symbol

在接收器中定義一個實例方法。 method 參數可以是 ProcMethodUnboundMethod 對象。如果指定了塊,則將其用作方法體。如果塊或 method 參數有參數,它們將用作方法參數。使用 instance_eval 評估此塊。

class A
  def fred
    puts "In Fred"
  end
  def create_method(name, &block)
    self.class.define_method(name, &block)
  end
  define_method(:wilma) { puts "Charge it!" }
  define_method(:flint) {|name| puts "I'm #{name}!"}
end
class B < A
  define_method(:barney, instance_method(:fred))
end
a = B.new
a.barney
a.wilma
a.flint('Dino')
a.create_method(:betty) { p self }
a.betty

產生:

In Fred
Charge it!
I'm Dino!
#<B:0x401b39e8>

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Module.define_method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。