Ruby中的数组容量限制

时间:2014-11-20 00:29:35

标签: ruby

我不知道如何设置数组容量,因此我的数组只能存储3个元素。例如。如果我尝试推送第4个元素,则返回错误。 有什么想法吗?

2 个答案:

答案 0 :(得分:6)

默认Array类没有该功能。所以,你的选择是:

  1. 创建一个单独的类,用于存储这三个元素并实现您自己的方法,例如push[]
  2. 子类Array并覆盖方法以仅允许三个元素,例如:

    class ThreeElements < Array
      def push(*stuff)
        raise 'Already has three elements!' unless length < 3
        super
      end
    end
    
  3. 在我看来,#1是更好的选择,因为默认的Array接口有太多的方法来打扰覆盖。

答案 1 :(得分:1)

您可以为阵列创建包装类!您还可以覆盖“[]”运算符并检查索引是否有效:

def [](i)
    # getter
end

def []=(i, v)
    # setter
end