From: Rodrigo Rosenfeld Rosas Date: 2011-06-06T03:58:45+09:00 Subject: [ruby-core:36770] Re: [Ruby 1.9 - Feature #4830][Open] Provide Default Variables for Array#each and other iterators Sorry, forgot to say that for hashes this becomes: [key_name: 'value', another_key: 'another_value'].each{ println "${it.key}: ${it.value}"} Em 05-06-2011 15:56, Rodrigo Rosenfeld Rosas escreveu: > I would just like to point it out that in Groovy, one can write either: > > [1, 2].each{ println it } > > or > > [1, 2].each{ number -> println number } > > Em 05-06-2011 05:23, Lazaridis Ilias escreveu: >> Issue #4830 has been reported by Lazaridis Ilias. >> >> ---------------------------------------- >> Feature #4830: Provide Default Variables for Array#each and other >> iterators >> http://redmine.ruby-lang.org/issues/4830 >> >> Author: Lazaridis Ilias >> Status: Open >> Priority: Normal >> Assignee: >> Category: core >> Target version: >> >> >> for arrays: use "item" by default >> for hashes: use "key" and "value" by default >> >> names = ["Jane", "Michele", "Isabella"] >> names.each { |name| print name, "\n" } >> names.each { print item, "\n" } >> >> contact = {name:"Jane", phone:"1234567"} >> contact.each { |key, value| print key, ": ", value, "\n"} >> contact.each { print key, ": ", value, "\n"} >> >> - >> >> The benefits are: >> >> * more compact code (without loosing clarity of the code). >> * no repetitions ("names, name, name") in a one-liner with {} block >> >> This extension does not break any existent behaviour. >> >> > >