我想了解不是由我寫的代碼。我如何知道方法期望的參數類型?例如,假設我有一個方法:我如何知道方法所需的參數類型?
def foo(bar)
@bar = bar
@baz = get_user(@bar.user)
end
我怎麼知道我應該發送給哪個對象?
我想了解不是由我寫的代碼。我如何知道方法期望的參數類型?例如,假設我有一個方法:我如何知道方法所需的參數類型?
def foo(bar)
@bar = bar
@baz = get_user(@bar.user)
end
我怎麼知道我應該發送給哪個對象?
您無法知道foo
正在等待接收什麼樣的參數,您只知道該對象必須在您的示例中響應user
。
這個原理被稱爲Duck Typing:在正常的打字中,假設適合性僅由對象的類型決定。在鴨子打字中,對象的適合性由某些方法和屬性(具有適當的含義)的存在來確定,而不是對象的實際類型。
http://rubylearning.com/satishtalim/duck_typing.html – emaillenin