【发布时间】:2012-09-18 22:50:29
【问题描述】:
我只是在看讲座 2.2 高阶函数(针对 Functional programming principles in Scala)。在那里,一个 sum 函数是这样定义的:
def sum(f: Int => Int, a: Int, b: Int) { ... }
稍后,同样的函数是这样定义的:
def sum(f: Int => Int)(a: Int, b: Int) { ... }
它们似乎是等价的,但没有解释为什么要在上面选择。
【问题讨论】:
-
另外值得注意的是,当您使用泛型时,泛型类型参数一次绑定一个参数块。所以如果你
def f[A](x: A, y: A),那么A将被选择来匹配x和y的类型,而def f[A](x: A)(y: A)意味着A的类型将是x的类型,而@ 987654331@ 最好匹配。任何一种行为都可能有用。
标签: scala