2011-09-23 7 views
5

Eventuali duplicati:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)Perché l'array di Ruby [array.length, count] restituisce []?

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

Qualcuno potrebbe spiegare perché a [3, 1] rendimenti []? Perché non lo è nil?

Grazie.

+0

Vuoi dire 'array [array.index, array.length]'? Il tuo titolo è un po 'confuso. – lemoncider

+0

@lemoncider Sì, il titolo è un po 'confuso, ma voglio solo specificare che ** array.index ** è uguale a ** array.length **. –

risposta

3

Bene, assomiglia a Ruby core documentation contrassegnarlo solo come "caso speciale". Secondo The Ruby Programming Language (O'Reilly, 2008), il commento su questo caso è:

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

Nessuna ulteriore spiegazione è data. Quindi penso che dovresti solo ricordare il "caso speciale".

Problemi correlati