函数返回函数返回函数的特殊语法

时间:2015-07-06 13:47:20

标签: scala

我遇到了以下类型的函数声明:

def fun(): Int => Int => Int = { ..... }

如何解释函数类型fun

它表明以下两种解释中的哪一种?

第一种解释:fun是一个返回某个函数X的函数,它接受另一个函数Y作为参数。此函数Y接受一个整数并返回一个整数;最终函数X返回一个整数。

def fun(): (Int => Int) => Int = { ..... }

第二种解释:fun是一个返回某个函数X的函数,它接受一个整数作为参数并返回另一个函数Y。此函数Y接受一个整数并返回一个整数。

def fun(): Int => (Int => Int) = { ..... }

在这种情况下,这些解释中的哪一种适用?

1 个答案:

答案 0 :(得分:2)

fun()是一个无参数的方法,它返回一个带有Int参数的函数,该函数返回另一个带有Int参数的函数,返回Int

即。你的第二个解释:

def fun(): Int => (Int => Int) = ???
Scala中的

=>右关联,因此该操作从右向左分组。