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

  • Apple

    Apple

    22 HAZİRAN 2005
  • AverageBroTV

    AverageBroTV

    20 Mart 2013
  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011