Scala函数到特征映射 - Scala泛型

时间:2017-04-27 23:21:26

标签: scala function

我正在努力学习scala。在他的一个讲座中,当Martin Odersky谈到Function对象时,他讨论了如何将scala函数扩展为AnonFun类,该类实现FunctionN(其中1< = N< = 22)特征apply方法。作为一个例子,他解释说匿名函数(x: Int) => x * x is扩展为以下类

new Function1[Int, Int] {
  def apply(x: Int) = x * x
}
new AnonFun

所以我的问题是,为什么Function1采用泛型[Int, Int]。难道不够吗?

1 个答案:

答案 0 :(得分:4)

最后一个类型定义函数返回值的类型。 有关更好地说明这一点的更多示例,请参阅this tutorial

摘自教程:

Int => Int
(Int, Int) => String
() => String

产生这些函数对象类型:

Function1[Int, Int]
Function2[Int, Int, String]
Function0[String]