我如何知道方法所期望的参数类型?

时间:2017-04-21 02:23:38

标签: ruby oop

我想了解一个不是我写的代码。我如何知道方法所期望的参数类型?例如,让我们说我有一个方法:

def foo(bar)
  @bar = bar
  @baz = get_user(@bar.user)
end

我如何知道应该向bar发送哪个对象?

1 个答案:

答案 0 :(得分:4)

您无法知道foo等待接收的参数类型,您只知道该对象必须在您的示例中响应user

这个原则被称为Duck Typing:通过正常输入,假定适合性仅由对象类型决定。在鸭子打字中,对象的适用性取决于某些方法和属性(具有适当含义)的存在,而不是对象的实际类型。