我遇到了is_a和instance_of函数的问题。
我有一个数组,我添加了项目,但是,只有在允许添加某种特定类类型的项目时才需要这样做。
我有以下代码:
def add_item(new_item)
new_item.is_a?(classA) do
@items << new_item
end
new_item.instance_of?(classA) do
@items << new_item
end
其中items是数组,classA是我在代码中定义的类。
虽然我发送给函数的项目属于classA类型,但它们都没有工作且项目没有被添加:
new_item = classA.new('text', 'text2')
如果有人可以协助解决这个问题,那将会很棒。
先谢谢
答案 0 :(得分:3)
尝试:
if new_item.is_a?(classA)
@items << new_item
end
is_a?
是一个返回true或false的方法。因为ruby中的每个方法都可以占用一个块,并且因为大多数方法它完全没有任何关系。所以你的<<
从未被执行过。