Project

General

Profile

Actions

Feature #12360

closed

More useful return values from bang methods

Added by trans (Thomas Sawyer) about 6 years ago. Updated almost 6 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:<unknown>]

Description

It would be nice if bang methods returned results that where of some additional use. Presently most just return the effected receiver.

For example, currently Array#reject! works as follows:

a = [1,2,3,4]
a.reject!{ |x| x % 2 == 0 }
=> [2,4]
a
=> [2,4]

So the return value of #reject! is useless b/c it is just the same as a (in this example). So why not return what was rejected instead:

a = [1,2,3,4]
a.reject!{ |x| x % 2 == 0 }
=> [1,3]
a
=> [2,4]

Now we have useful additional information -- we know exactly what got rejected. To do the same thing presently we would have to fully duplicate the original array and then take the difference -- two extra steps.

The downside is that the method would consume a little more memory and probably slow the method's execution a little too. But I tend to side with functionality when I use Ruby.

Actions

Also available in: Atom PDF