ruby - 需要禁止数组中的负索引值

标签 ruby arrays

我有一个数组 date_array。如果 i0,我希望 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/

相关文章:

ruby - 使用cucumber/capybara时有没有类似于selenium grid的东西?

Ruby EventMachine,终止正在运行的进程?

ruby-on-rails - Rails 中授权的功能测试

php - 是多维数组好还是多维数组好?

arrays - 在 Perl 中逐行比较两个字符串

javascript - 跳过 Javascript 数组中的空格

php - JQuery 和 JSON 数组 - 如何检查数组是否为空或未定义?

ruby-on-rails - percise32 vagrant box 上的 Rails 应用程序 - Assets 出现 "text file busy"错误 (Errno::ETXTBSY)

Javascript:检查字符串中匹配的关键字数组

Ruby:Dir.glob 不返回任何文件