Ravindu De Silva
Ravindu De Silva

Reputation: 29

map function in Scala

In Scala programming use an anonymous function is a usual thing . when i decide to creat a vector as out put of an anonymous function from two different ways way one : var hold1=(1 to 5).map(_*2) way two: var hold2=(1 to 5).map(2*) I want to know what is the difference between those two declaration ?

Upvotes: 1

Views: 698

Answers (2)

Sivakumar
Sivakumar

Reputation: 354

Both are exactly same. You can use underscore character in many different ways. Refer this link for more details.

What are all the uses of an underscore in Scala?

Upvotes: 0

Tanjin
Tanjin

Reputation: 2452

In short - they are exactly the same. First approach:

var hold1 = (1 to 5).map(_*2)

Let's rewrite this another way to demonstrate what's really happening under the hood (no syntactic sugar)

var hold1 = (1 to 5).map(number => number.*(2))

Second approach:

var hold2 = (1 to 5).map(2*)

Rewrite again:

var hold2 = (1 to 5).map(number => 2.*(number))

All that is happening is in first way are invoking the * def on the number 2 and in the second way we are invoking the * def on the number.

Upvotes: 4

Related Questions