[ruby-core:113367] [Ruby master Feature#12165] Hash#first, Hash#last
From:
"bughit (bug hit) via ruby-core" <ruby-core@...>
Date:
2023-04-27 20:16:46 UTC
List:
ruby-core #113367
Issue #12165 has been updated by bughit (bug hit).
Hash should absolutely have a performant last method that doesn't build an intermediate array (`hash.(values|keys).last`). This is connected to having a performant reverse_each (#8707)
----------------------------------------
Feature #12165: Hash#first, Hash#last
https://bugs.ruby-lang.org/issues/12165#change-102933
* Author: stillhart (Fabian Stillhart)
* Status: Open
* Priority: Normal
----------------------------------------
Just run into a simple problem with a colleague and was wondering why there is no Hash#last method?
~~~ruby
{a: true, b: false}.last
NoMethodError: undefined method 'last' for {:a=>true, :b=>false}:Hash
~~~
Interestingly I while playing arround I found out that the Hash#first method works. But why is it not in the ruby-doc?
~~~ruby
{a: true, b: false}.first
=> [:a, true]
~~~
I would assume the Hash#last method would work like the Hash#first method:
~~~ruby
{a: true, b: false}.last
=> [:b, false]
~~~
If I am not wrong the order of a Hash is always the same when calling Hash#each. So wouldn't it make sense to have Hash#last method?
I tested it in Ruby 2.2.4 and Ruby 2.3.0.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/