可能重复:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)
a = %w[a b c]
a[3, 1] # => []
a[4, 1] # => nil
有人可以解释为什么 a [3,1] 会返回 [] 吗?为什么不 nil 呢?
谢谢。
答案 0 :(得分:3)
好吧,看起来Ruby core documentation只将此标记为“特殊情况”。 根据The Ruby Programming Language(O'Reilly,2008),对这个案例的评论是:
a[arr_len, len] #=> [], empty array right at the end
a[arr_len + 1, len] #=> nil, nonthing beyond that
没有给出进一步的解释。所以我认为你应该记住“特殊情况”。