【发布时间】:2016-07-18 14:53:55
【问题描述】:
试图定义两个名为foo 的方法,一个带有两个参数列表,另一个只有一个。似乎不起作用:
object Bar {
def foo(a: Int)(b: Int): Int = a+b
def foo(a: Int): Int = foo(a)(0)
}
error: ambiguous reference to overloaded definition,
both method foo in object Bar of type (a: Int)Int
and method foo in object Bar of type (a: Int)(b: Int)Int
match argument types (Int)
def foo(a: Int): Int = foo(a)(0)
^
???不,他们没有……
【问题讨论】:
-
Bar.foo(1)会调用两者中的哪一个? -
@pedrofurla 显然它会调用带有单个参数列表的那个。
-
@Dima 链接在页面顶部。
-
@m-z 对不起......不知道我怎么错过了
标签: scala overloading