我注意到,scala编译器不允许范围方法重载。 Scala版本2.11.12
不编译:
val result = {
def loop(a: String): String = ???
def loop(i: Int): Int = ???
???
}
正确编译:
def loop(a: String): String = ???
def loop(i: Int): Int = ???
val result = ???
问题:
答案 0 :(得分:0)
当您调用对象上的方法时会发生重载,而裸函数调用则不会发生。因此,您只能为类定义重载方法。块不是类,因此不能有重载的方法。
您的“正确编译”代码仅在直接放在类/对象内部时才起作用。