我是scala的新手,我看到了这段代码:
def sum(f: Int => Int)(a: Int, b: Int): Int = ...
我知道这个sum函数采用Ints类型的2个参数(a和b)的函数。
我是否正确地说:
sum 函数需要一个函数,因为我看到( def sum 之后的f:?
我对 Int =>感到有些困惑。 Int 语法和 = 之前的最后:Int 。
右箭头左侧的 Int 表示什么?
右箭头右侧的Int类型是否表示:
最后:Int = 表示 sum 函数的返回值是Int ??
类型答案 0 :(得分:0)
sum
方法需要3个参数,在两个列表之间拆分,并返回Int
。第一个参数列表用于获取Int
并返回Int
的函数。这使得sum
成为一个更高阶的函数(在等同于方法和函数的松散意义上)。冒号意味着“类型”。
值得注意的是,函数和方法的返回值有不同的语法。这是因为函数是Scala中的值,因此它们的参数和返回类型必须由单个类型捕获,=>
捕获它。方法不是值,它们的参数类型和返回类型分别标注。作为一个初学者,你可能会掩饰这一点,但我认为这对explore the distinction是值得的。