SORU
3 AĞUSTOS 2009, PAZARTESİ


Nasıl Scala'ler geçerli mi() sihirli çalışma yöntemi?

İçinde Scala, eğer ben define adında bir yöntem apply bir sınıf ya da üst düzey bir nesne, bu yöntem çağrılır zaman ben eklemek bir çift parantez için bir örnek sınıf ve uygun değişkenler için apply() aralarında. Örneğin:

class Foo(x: Int) {
    def apply(y: Int) = {
        x*x   y*y
    }
}

val f = new Foo(3)
f(4)   // returns 25

Temelde, object(args) object.apply(args) için sözdizimsel şeker.

Nasıl Scala bu dönüşüm yapmak yok?

Genel olarak tanımlanmış bir örtük dönüştürme burada, Predef nesne örtülü tip dönüşümleri benzer (ama biraz farklı) var mı? Yoksa biraz daha derin bir büyüdür? Scala şiddetle kuralları yerine, birçok istisnalar dışında birçok kural küçük tutarlı uygulama iyilik gibi görünüyor çünkü ben soruyorum. Bu başlangıçta benim için bir istisna gibi görünüyor.

CEVAP
3 AĞUSTOS 2009, PAZARTESİ


Bir şey aslında ama söylediğin şey daha oluyor, daha derin bir şey olduğunu sanmıyorum: derleyici özel bir sözdizimi olduğu gibi f.apply(a) f(a) dönüştürür sayede. sadece sözdizimsel şeker

Bu belirli bir kural gibi görünebilir, ama bu sadece bir kaç (update örneğin, DSL-gibi yapıları ve kütüphaneler için izin verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ecf150king

    ecf150king

    20 Ocak 2006
  • J Medema

    J Medema

    11 EKİM 2006
  • wowchick16

    wowchick16

    17 Mart 2007