2011-09-23 35 views
5

Duplicar posible:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)¿Por qué la matriz de Ruby [array.length, count] devuelve []?

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

¿Alguien podría explicar por qué A [3, 1] vuelve []? ¿Por qué no nil en su lugar?

Gracias.

+0

¿Quiere decir 'array [array.index, array.length]'? Tu título es un poco confuso. – lemoncider

+0

@lemoncider Sí, el título es un poco confuso, pero solo quiero especificar que ** array.index ** sea igual a ** array.length **. –

Respuesta

3

Bueno, parece que Ruby core documentation solo marque esto como "caso especial". De acuerdo con The Ruby Programming Language (O'Reilly, 2008), el comentario sobre este caso es: se da

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

Sin más explicaciones. Entonces creo que deberías recordar el "caso especial".

Cuestiones relacionadas