问题
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 ?
回答1:
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.
回答2:
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?
来源:https://stackoverflow.com/questions/43302223/map-function-in-scala