Ruby - Instance_of? / is_a无效

时间:2014-10-13 12:05:14

标签: ruby

我遇到了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')

如果有人可以协助解决这个问题,那将会很棒。

先谢谢

1 个答案:

答案 0 :(得分:3)

尝试:

if new_item.is_a?(classA)
  @items << new_item
end

is_a?是一个返回true或false的方法。因为ruby中的每个方法都可以占用一个块,并且因为大多数方法它完全没有任何关系。所以你的<<从未被执行过。