2

我正在尝试在 scala 中执行以下操作:

def addPoints(x1: Int, y1: Int)(x2: Int, y2: Int)(x3: Int, y3: Int) = {
  doSomethingWith(x1, y1, x2, y2, x3, y3)
  (addPoints _)
}

但是,我正在努力弄清楚这个函数的返回类型应该是什么,因为似乎不可能定义一个无限递归的函数类型。我想做的是以下几点:

type RecursiveFunction2[A, B] = (A, B) => RecursiveFunction2[A, B]

var pointAdder: RecursiveFunction2[Int, Int] = (addPoints _)

def onEvent(x: Int, y: Int) {
  pointAdder = pointAdder(x, y)
}

但是,类型不能引用自己。有没有办法在不使用返回类型Any和调用的情况下完成此操作asInstanceOf[Function2[Int, Int, Any]]

4

0 回答 0