本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。