鑑於這種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