Teniendo en cuenta este código Scala:¿Por qué el comportamiento de Scala en caso de sobrecarga con parámetros de nombre diferente del caso con parámetros de valor por defecto?
object test {
def byval(a: Int) = println("Int")
def byval(a: Long) = println("Long")
def byname(a: => Int) = println("=> Int")
def byname(a: => Long) = println("=> Long")
def main(args: Array[String]) {
byval(5)
byname(5)
}
}
el ByVal de llamada (5) compila correctamente, pero falla al compilar sobrenombre:
ambiguous reference to overloaded definition
¿Por qué? Esperaría observar el mismo comportamiento para los parámetros by-value y by-name con respecto a la sobrecarga ... ¿Cómo se puede arreglar?
Podría ser un error ... – soc