本文简要介绍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 BasicObject.equal?用法及代码示例
- Ruby BasicObject.instance_eval用法及代码示例
- Ruby BasicObject.obj ==用法及代码示例
- Ruby BasicObject.singleton_method_undefined用法及代码示例
- Ruby BasicObject.send用法及代码示例
- Ruby BasicObject.instance_exec用法及代码示例
- Ruby BasicObject.singleton_method_added用法及代码示例
- Ruby BasicObject.singleton_method_removed用法及代码示例
- Ruby BasicObject.__id__用法及代码示例
- Ruby BasicObject类用法及代码示例
- Ruby BasicSocket.send用法及代码示例
- Ruby BasicSocket.remote_address用法及代码示例
- Ruby BasicSocket.recv用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup用法及代码示例
- Ruby BasicSocket.do_not_reverse_lookup =用法及代码示例
- Ruby BasicSocket.connect_address用法及代码示例
- Ruby BasicSocket.recv_nonblock用法及代码示例
- Ruby BasicSocket.recvmsg用法及代码示例
- Ruby BasicSocket.getsockopt用法及代码示例
- Ruby BasicSocket.getpeereid用法及代码示例
- Ruby BasicSocket.local_address用法及代码示例
- Ruby BasicSocket.shutdown用法及代码示例
- Ruby BasicSocket.close_read用法及代码示例
- Ruby BasicSocket.getpeername用法及代码示例
- Ruby BasicSocket.getsockname用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 BasicObject.method_missing。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。