map function in Scala

╄→尐↘猪︶ㄣ 提交于 2019-12-24 07:39:52

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!