我有一个数组 date_array
。如果 i
是 0
,我希望 date_array[i-1]
返回 nil
或异常。我以为我可以为此派生一个 Array 的子类,但我不确定之后该去哪里。有什么想法吗?
最佳答案
你可以这样做,但你不应该这样做。我觉得你的做法是错误的,因为检查传递的索引值是你的责任,而不是 Array 的责任。
只是一个例子
def get_array_value (i)
return data_array[i - 1] unless i < 0
return nil
end
但是,如果您坚持,此解决方案可能适合您。
# arr = SpecialArray.new([1, 2, 3, 4, 5])
class SpecialArray < Array
def [](i)
return super(i) unless i < 0
return nil
end
end
关于ruby - 需要禁止数组中的负索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7664539/