【发布时间】:2021-08-25 08:22:28
【问题描述】:
当我编译这段代码时,我得到方法m1 的模糊引用错误。谁能告诉我为什么?
object MyClass {
trait T {
def m1(str: String): Unit = println(str)
def m1: Unit = {
println("m1")
m1("from:m1")
}
}
class C extends T {
override def m1(str: String): Unit = println(str+"1")
}
def main(args: Array[String]): Unit = {
val c = new C()
c.m1
}
}
【问题讨论】:
-
由于第二种方法有副作用,样式指南说它应该定义为
def m1(): Unit = {,因此调用站点必须是c.m1(),这应该可以解决歧义问题。 -
@LuisMiguelMejíaSuárez 谢谢。你是对的。
标签: scala overloading