我正在努力学习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]
。难道不够吗?
答案 0 :(得分:4)
最后一个类型定义函数返回值的类型。 有关更好地说明这一点的更多示例,请参阅this tutorial。
摘自教程:
Int => Int
(Int, Int) => String
() => String
产生这些函数对象类型:
Function1[Int, Int]
Function2[Int, Int, String]
Function0[String]