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

  • B3ASTTY™

    B3ASTTY™

    27 Mayıs 2013
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007