Как получить последний элемент массива в Ruby?

95

Пример:

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

Как получить последнее значение 5в массиве aили последнее значение 6в массиве bбез использования a[3]и b[4]?

Rails новичок
источник

Ответы:

207

Использовать -1индекс (отрицательные индексы считаются в обратном порядке от конца массива):

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

или Array#lastметод:

a.last # => 5
b.last # => 6
KL-7
источник
23
Не забываем и удобное Array#last:)[1,2,3].last #=> 3
Ли Джарвис
14
@theTinMan Поскольку pop также изменяет массив, здесь не об этом просили.
sepp2k
Спасибо за опцию -ve, его tremendus.
vidur punj
8
Кроме того, пока, a.last = 10 #=> NoMethodError: undefined method last=' но a[-1] = 10работает по назначению.
GregPK
10

Другой способ, используя оператор splat:

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

STDOUT:
a: [1, 3, 4]
last: 5
Льюис Бакли
источник