Project

General

Profile

Feature #5710

Enumerable#each( :method ) and Enumerable#map( :method )

Added by battox (Matías Battocchia) about 9 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:41486]

Description

#each and #map could accept an argument of class string or symbol and send it to the objects in the enumerable.

An example:

array = [ "bi", "tri", "quad" ]
p array.each( :upcase! ) #=> [ "BI", "TRI", "QUAD" ]
p array.map( :length ) #=> [ 2, 3, 4 ]

It is the same --but succinctly-- as:

array.each { | string |
string.upcase!
}

array.map { | string |
string.length
}

This abbreviation is useful for those simple cases when you need to call a method over, or retrieve the values of a property of a set of objects.

Updated by trans (Thomas Sawyer) about 9 years ago

Try

array = [ "bi", "tri", "quad" ]
p array.each( &:upcase! ) #=> [ "BI", "TRI", "QUAD" ]
p array.map( &:length ) #=> [ 2, 3, 4 ]

Updated by battox (Matías Battocchia) about 9 years ago

It works. Thank you!

I guess that this issue has been resolved...

Updated by duerst (Martin Dürst) about 9 years ago

  • Status changed from Open to Closed

closed at request of submitter

Also available in: Atom PDF