2012-08-02 14 views

cevap

37

Eğer nasıl veya neden ister misin? Diğer yanıt notları gibi, ,'un otomatik olarak oluşturulan tamamlayıcı nesnede nasıl yalnızca apply yöntemidir. İçin

neden: vaka sınıfları genellikle Scala algebraic data types uygulamak için kullanılan ve new -daha az yapıcı (a değer yaratmak örneğin daha desen eşleştirme yoluyla yapısökümünden benziyor) daha şık bir kod verir ve Diğer dillerde ADT sözdizimine daha çok benzemektedir.

+1

Teşekkürler, bu benim aradığım şey :) –

1

Vaka sınıflar kurucular gibi kullanabilirsiniz bunların tamamlayıcı bir nesne üzerinde bir otomatik olarak oluşturulanapply fonksiyon sağlamak.

object Person { 
def apply(name: String, age: Integer): Person = new Person(name,age) 
} 

Örnek:

case class Person(name: String, age: Integer) 

üçü de aynı şeyi yapmak aşağıdaki

Scala yılında bozulamaz bayt kodu aşağıdaki şekilde oluşturulan apply fonksiyonunu bulacaksınız. Eğer val p1 = Person("Frank", 23) kullanırsanız

val p0 = new Person("Frank", 23) // normal constructor 

val p1 = Person("Frank", 23) // this uses apply 

val p2 = Person.apply("Frank", 23) // using apply manually 

Yani bir yapıcı, yöntemini uygulamak dediğimiz bu bir yöntem değildir.

Daha fazla bilgi için lütfen scala-object-apply-functions'u okuyun.

İlgili konular