5

在 twitter Scala School “Basics Continued” http://twitter.github.io/scala_school/basics2.html中有以下对象定义

object addOne extends Function1[Int, Int] {
  def apply(m: Int): Int = m + 1
}

我不完全理解 [Int, Int] 类型参数化。当我们扩展 Function1 时,我相信我是在声明我将有一个接受单个参数的应用程序,为什么当我的应用程序构建为只接受单个 Int 参数时 Function1[Int, Int] 中的第二个 Int ?

请解释。

4

1 回答 1

12

它是返回类型。Function1[Int, Int]是一样的Int => Int。它需要一个Int并返回一个Int

我们可以这样简化scala.Function1

trait Function1[T1, R]{
  def apply(v1: T1): R
}
于 2013-06-10T21:10:42.347 回答