我不知道如何设置数组容量,因此我的数组只能存储3个元素。例如。如果我尝试推送第4个元素,则返回错误。 有什么想法吗?
答案 0 :(得分:6)
默认Array
类没有该功能。所以,你的选择是:
push
和[]
。子类Array
并覆盖方法以仅允许三个元素,例如:
class ThreeElements < Array
def push(*stuff)
raise 'Already has three elements!' unless length < 3
super
end
end
在我看来,#1是更好的选择,因为默认的Array接口有太多的方法来打扰覆盖。
答案 1 :(得分:1)
您可以为阵列创建包装类!您还可以覆盖“[]”运算符并检查索引是否有效:
def [](i)
# getter
end
def []=(i, v)
# setter
end