2011-09-23 134 views
5

可能重复:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)为什么Ruby数组[array.length,count]返回[]?

a = %w[a b c] 
a[3, 1] # => [] 
a[4, 1] # => nil 

任何人都可以解释为什么一个[3,1]回报[]?为什么不是而不是?

谢谢。

+0

你的意思是'array [array.index,array.length]'?你的标题有点混乱。 – lemoncider

+0

@lemoncider是的,标题有点混乱,但我只是想指定** array.index **等于** array.length **。 –

回答

3

好吧,看起来像Ruby core documentation只标记为“特例”。 根据Ruby编程语言(O'Reilly出版,2008),在这种情况下,评论是:

a[arr_len, len] #=> [], empty array right at the end 
a[arr_len + 1, len] #=> nil, nonthing beyond that 

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

相关问题