我需要的,如果根据对象的类型/类的语句使用简单。
我有一个自定义的Array类和Matrix类。 Array类的元素没有一个number_of_cols
属性
def method(other)
if self.is_a?(Array)
c = self.class.zeros(shape[0], shape[1])
elsif self.is_a?(Matrix)
c = self.class.zeros(number_of_rows, other.number_of_cols)
end
end
然而,运行这个时候,我得到一个错误:
undefined method 'number_of_cols' for Array
这是exactyle为什么我有这样的if语句。 我也试过self.responds_to?(:number_of_cols)
在elsif
但同样的错误。
我总是可以使两种方法,每种类型之一,但我也想明白为什么当有喜欢的专用佣工这是不工作is_a?
和responds_to?
为了避免这些问题。