この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)の呼び出しは正しくコンパイルされますが、bynameはコンパイルに失敗します。
ambiguous reference to overloaded definition
なんで?オーバーロードに関して、値別パラメーターと名前別パラメーターで同じ動作が見られると思います…どうすれば修正できますか?