scala-我可以重载咖喱方法吗?
有没有办法在Scala中重载采用多个参数列表的方法?例如,我想这样做:scala-我可以重载咖喱方法吗?,scala,Scala,有没有办法在Scala中重载采用多个参数列表的方法?例如,我想这样做: def foo(a: Int)(b: Int)(c: Int): Int def foo(a: Int)(b: Int): Int 我可以这样定义它,但尝试调用第二个方法,如下所示: foo(1)(1) 使编译器抱怨“对重载定义的引用不明确”,这似乎是合理的。有没有办法做到这一点?例如,在某些情况下,最后一个参数可能被认为是可选的。您不能对此使用重载,因为由于使用curry,将有两个foo方法仅在返回类型上有所不同 您
def foo(a: Int)(b: Int)(c: Int): Int
def foo(a: Int)(b: Int): Int
我可以这样定义它,但尝试调用第二个方法,如下所示:
foo(1)(1)
使编译器抱怨“对重载定义的引用不明确”,这似乎是合理的。有没有办法做到这一点?例如,在某些情况下,最后一个参数可能被认为是可选的。您不能对此使用重载,因为由于使用curry,将有两个
foo
方法仅在返回类型上有所不同
您可以使用Scala2.8来近似此值,但必须将此方法调用为foo(1)(1)(
)。例如:
object Hello {
def foo(a : String = "Hello,") : String = a
def main(args: Array[String]) {
println(foo() + foo(" world!"))
}
}