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
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.
Nasıl geçerli kabuk İ'm çalışma b...
Nasıl geçerli yöntemi olarak adlandırı...
Nasıl Python ile geçerli çalışma dizin...
nasıl'ırb mutlak yolu s geçerli ç...
Nasıl komut dizin için geçerli çalışma...