在scala map中,filter,grouby是函数或方法

时间:2016-08-02 17:13:05

标签: scala

我是scala的新手。我需要了解一个基本想法。

在scala中,我们有map,filter,groupBy等。

它们有功能吗?或者他们是方法吗?

2 个答案:

答案 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方法的对象。

mapfiltergroupBy都不是,它们甚至都不是对象。它们是方法。

答案 1 :(得分:0)

这些是许多Scala类提供的高阶函数,可用于组成其他函数

http://docs.scala-lang.org/tutorials/tour/higher-order-functions.html

这个高阶函数可能是方法if(来自Scala doc)"方法是一个函数,它是某个类,特征或单个对象的成员。"