Como obter o último elemento de um array em Ruby?

93

Exemplo:

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

Como obtenho o último valor 5na matriz aou o último valor 6na matriz bsem usar a[3]e b[4]?

Rails iniciante
fonte

Respostas:

203

Use o -1índice (índices negativos contam para trás a partir do final da matriz):

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

ou Array#lastmétodo:

a.last # => 5
b.last # => 6
KL-7
fonte
23
Não vamos esquecer o conveniente Array#lasttambém :)[1,2,3].last #=> 3
Lee Jarvis
14
@theTinMan Visto que o pop também modifica o array, não é o que foi pedido aqui.
sepp2k
Obrigado pela opção de sinal -ve seu tremendo.
vidur punj de
8
Além disso, a.last = 10 #=> NoMethodError: undefined method last=' mas a[-1] = 10funciona como pretendido.
GregPK de
10

Outra maneira, usando o operador splat:

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

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