我遇到了以下类型的函数声明:
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) = { ..... }
在这种情况下,这些解释中的哪一种适用?
答案 0 :(得分:2)
fun()
是一个无参数的方法,它返回一个带有Int
参数的函数,该函数返回另一个带有Int
参数的函数,返回Int
。
即。你的第二个解释:
def fun(): Int => (Int => Int) = ???
Scala中的 =>
是右关联,因此该操作从右向左分组。