为什么Ruby数组[array.length,count]返回[]?

时间:2011-09-23 04:54:16

标签: ruby arrays

  

可能重复:
  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 呢?

谢谢。

1 个答案:

答案 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

没有给出进一步的解释。所以我认为你应该记住“特殊情况”。