鉴于这种Scala代码:为什么Scala在使用名称参数重载的情况下的行为与按值参数的情况不同?
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)
}
}
通话BYVAL(5)正确编译,但绰号无法编译:
ambiguous reference to overloaded definition
为什么?我希望遵守相同的行为,以适应超载的价值和名称参数......它如何被修复?
这可能是一个错误... – soc 2010-12-01 14:54:57