Scala'nın komut satırı repl kullanma:Yinelemeli aşırı yükleme semantik - JVM dilleri
def foo(x: Int): Unit = {}
def foo(x: String): Unit = {println(foo(2))}
verir
error: type mismatch;
found: Int(2)
required: String
Size Repl rekursif yöntemleri aşırı tanımlamak olamaz gibi görünüyor. Bunun Scala REPL'de bir hata olduğunu düşündüm ve dosyalama yaptım, ama neredeyse "wontfix ile kapatıldı: Tercümanın semantiği göz önüne alındığında bunun desteklenebileceğini görmüyorum, çünkü bu iki yöntem derlenmeli." birlikte." Yöntemleri kapalı bir nesneye koymanızı tavsiye etti.
Nedenini açıklayabilecek bir JVM dil uygulaması veya Scala uzmanı var mı? Örneklerin birbirini çağırması, ancak bu durumda bir problem olacağını görebiliyorum.
Ya da eğer bu çok büyük bir soru ve daha fazla ön bilgiye ihtiyaç duyduğumu düşünüyorsan, birisi JVM'de, özellikle dil uygulamalarıyla ilgili kitaplara veya sitelere iyi bir bağ var mı? (John Rose'un blogu ve Programlama Dili Pragmatiği kitabı hakkında biliyorum ... ama bu konuyla ilgili.)
Mükemmel cevap Daniel, teşekkürler. Ayrıca blog'unu beğendim. :) –