在推特斯卡拉学校“基础知识持续”http://twitter.github.io/scala_school/basics2.html中,有以下对象定义
object addOne extends Function1[Int, Int] {
def apply(m: Int): Int = m + 1
}
我不完全理解[Int,Int]类型参数化。当我们扩展Function1时,我相信我宣布我将申请一个参数, 为什么我的apply中的第二个Int构建为只接受一个Int参数?
请解释。
答案 0 :(得分:11)
这是返回类型。 Function1[Int, Int]
与Int => Int
相同。它需要一个Int
并返回一个Int
。
我们可以像这样编写简化的scala.Function1
:
trait Function1[T1, R]{
def apply(v1: T1): R
}