Project

General

Profile

Misc #10549

Deprecate each_with_index and each_with_object in favor of with_index and with_object

Added by danielmorrison (Daniel Morrison) about 5 years ago. Updated almost 2 years ago.

Status:
Open
Priority:
Normal
[ruby-core:66493]

Description

I wonder if we can deprecate each_with_index and each_with_object and fully recommend with_index and with_object instead.

I personally like the shorter forms because they hint that they can be used with more methods than simply each. People don't need to ask if there's a map_with_index method, they can just try chaining it the same way and it works! I realized this when teaching new Rubyists, because they often ask those questions.

There is a negligible performance hit.

Lots of code uses each_with_index but it is a one-character change to use each.with_index instead.

Forgive me if this has been brought up recently, but I couldn't find any discussion on it.

History

Updated by trans (Thomas Sawyer) about 5 years ago

If Functors* (https://bugs.ruby-lang.org/issues/6594) could be built into the language proper, then what you suggest should be possible with essentially no performance penalties at all.

(* Not to be confused with the Haskell concept.)

#2

Updated by naruse (Yui NARUSE) almost 2 years ago

  • Target version deleted (2.2.0)

Also available in: Atom PDF