¿Cómo obtener el último elemento de una matriz en Ruby?

94

Ejemplo:

a = [1, 3, 4, 5]
b = [2, 3, 1, 5, 6]

¿Cómo obtengo el último valor 5de la matriz ao el último valor 6de la matriz bsin usar a[3]y b[4]?

Principiante de rieles
fuente

Respuestas:

204

Utilice el -1índice (los índices negativos cuentan hacia atrás desde el final de la matriz):

a[-1] # => 5
b[-1] # => 6

o Array#lastmétodo:

a.last # => 5
b.last # => 6
KL-7
fuente
23
No olvidemos lo conveniente Array#lasttambién :)[1,2,3].last #=> 3
Lee Jarvis
14
@theTinMan Dado que pop también modifica la matriz, no es lo que se pidió aquí.
sepp2k
Gracias por la opción de signo -ve es tremendus.
vidur punj
8
También eso, a.last = 10 #=> NoMethodError: undefined method last=' pero a[-1] = 10funciona según lo previsto.
GregPK
10

De otra forma, usando el operador splat:

*a, last = [1, 3, 4, 5]

STDOUT:
a: [1, 3, 4]
last: 5
Lewis Buckley
fuente