我注意到,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 = ???
问题:
最佳答案
重载是在对象上调用方法时发生的,而裸函数调用则不会发生。因此,您只能为类定义重载方法。块不是类,因此不能有重载的方法。
您的“正确编译”代码仅在直接放在类/对象内部时才起作用。
关于scala - 为什么Scala编译不允许作用域方法重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121307/