Skip to content

Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →

instance method

Hash#each_key

() { (K arg0) -> untyped } -> ::Hash[K, V]
() -> ::Enumerator[K, self]
hash.each_key {|key| ... } → self
hash.each_key → new_enumerator

Calls the given block with each key; returns self:

Example
h = {foo: 0, bar: 1, baz: 2}
h.each_key {|key| puts key }  # => {:foo=>0, :bar=>1, :baz=>2}

Output:

Example
foo
bar
baz

Returns a new Enumerator if no block given:

Example
h = {foo: 0, bar: 1, baz: 2}
e = h.each_key # => #<Enumerator: {:foo=>0, :bar=>1, :baz=>2}:each_key>
h1 = e.each {|key| puts key }
h1 # => {:foo=>0, :bar=>1, :baz=>2}

Output:

Example
foo
bar
baz
See also #each #each_pair #dig #each_value also in 4.1 · 4.0 · 3.3 · 3.2 · 3.1 · 3.0