From: Alexey Muranov Date: 2011-09-21T07:36:37+09:00 Subject: [ruby-core:39644] [Ruby 1.9 - Feature #4830] Provide Default Variables for Array#each and other iterators Issue #4830 has been updated by Alexey Muranov. I agree with Adam. In my opinion, this would be "convention over configuration" pushed to extreme. A person seeing for the first time a piece of code with these default variables will have no way to know what is going on. "Conventions over configuration" should be easy to override, but here it is expected to become a static syntax. Are there any other default _variable_ names in Ruby at all? If not, this will be a complicating innovation. Alexey. ---------------------------------------- Feature #4830: Provide Default Variables for Array#each and other iterators http://redmine.ruby-lang.org/issues/4830 Author: Lazaridis Ilias Status: Assigned Priority: Low Assignee: Yukihiro Matsumoto 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. -- http://redmine.ruby-lang.org