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


Ruby BasicObject.method_missing用法及代码示例


本文简要介绍ruby语言中 BasicObject.method_missing 的用法。

用法

method_missing(symbol [, *args] ) → result

obj 被发送一条无法处理的消息时由 Ruby 调用。 symbol 是被调用方法的符号,args 是传递给它的任何参数。默认情况下,调用此方法时,解释器会引发错误。但是,可以覆盖该方法以提供更多动态行为。如果决定不处理特定方法,则应调用super,以便祖先可以拾取丢失的方法。下面的示例创建了一个类 Roman ,它响应名称由罗马数字组成的方法,返回相应的整数值。

class Roman
  def roman_to_int(str)
    # ...
  end

  def method_missing(symbol, *args)
    str = symbol.id2name
    begin
      roman_to_int(str)
    rescue
      super(symbol, *args)
    end
  end
end

r = Roman.new
r.iv      #=> 4
r.xxiii   #=> 23
r.mm      #=> 2000
r.foo     #=> NoMethodError

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 BasicObject.method_missing。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。