当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。