我是scala的新手。我需要了解一个基本想法。
在scala中,我们有map,filter,groupBy等。
它们有功能吗?或者他们是方法吗?
答案 0 :(得分:5)
他们是方法。见,例如, scala.collection.GenTraversableLike.map
方法。
Scala核心语言中没有真正的功能。
基本上,Scala中对函数的支持类似于Java:任何具有名为apply
的方法的对象都可以用作“函数”。 Scala标准库中有许多特征,称为Function0[+R]
,Function1[-T1, +R]
,Function2[-T1, -T2, +R]
,Function3[-T1, -T2, -T3, +R]
等,可以使用特殊的文字语法进行实例化,如下所示:
val fn = (i: Int, j: Int) => i + j
Scala中的“功能”意味着两个想法:
FunctionN
特征之一的实例,或apply
方法的对象。 map
,filter
,groupBy
都不是,它们甚至都不是对象。它们是方法。
答案 1 :(得分:0)
这些是许多Scala类提供的高阶函数,可用于组成其他函数
http://docs.scala-lang.org/tutorials/tour/higher-order-functions.html
这个高阶函数可能是方法if(来自Scala doc)"方法是一个函数,它是某个类,特征或单个对象的成员。"