Подтвердить что ты не робот

Доступ к последней паре ключ-значение в буфере Ruby (1.9)

Начиная с Ruby 1.9, хеши сохраняют порядок вставки, который очень крут. Я хочу узнать лучший способ доступа к последней паре ключей и значений.

Я написал код, который делает следующее:

hash.values.last

Это работает и очень легко понять, но возможно возможно получить доступ к последнему значению напрямую, а именно через посредника (массив значений). Это?

4b9b3361

Ответ 1

Ничего не построено, нет. Но вы могли бы обезглавить одно, если бы вы были так склонны (обычно не рекомендуется, конечно):

class Hash
  def last_value
    values.last
  end
end

И затем:

hash.last_value

Ответ 2

Hash имеет "первый" метод, но возвращает первую пару в режиме массива, для последнего вы можете попробовать:

my_hash.to_a.last

это возвращает последнюю пару в режиме массива, например, "первый метод"

Ответ 3

Еще одна альтернатива, которую я использую сам:

hash[hash.keys.last]

Ответ 4

Я просто сделал это для очень большого хэша:

hash.reverse_each.with_index do |(_, value), index|
  break value if (index == 0)
end