SORU
2 Ocak 2010, CUMARTESİ


Kendi türleri ve özellik sınıfları arasındaki fark nedir?

Bir özellik için self-tip 3**:

trait B
trait A { this: B => }

diyor"A B genişletmek değil, somut bir sınıf içine karışık olamaz".

Diğer taraftan, aşağıdaki:

trait B
trait A extends B

diyor< . em ^"() somut ya da soyut herhangi bir sınıf A karışım B karışım olacak".

Bu iki ifade aynı anlama geliyor değil mi? Kendi türünde tek bir basit imkanı yaratmak için görünüyor-derleme zamanı hatası.

Neyi kaçırıyorum?

CEVAP
2 Ocak 2010, CUMARTESİ


Cake Pattern gibi Dependency Injection için kullanılır. great article bir bağımlılık enjeksiyon birçok farklı formları kapsayan Kek Kalıbı dahil olmak üzere Scala, var. Eğer Kek Kalıbı ve Scala için Google bakarsanız, birçok bağlantıları, sunumlar ve videolar da dahil olmak üzere alacaksın. Şimdi, burada another question bir bağlantı vardır.

Kendini bir tür arasındaki fark nedir ve bir özellik uzanan gibi, bu kadar basit. Eğer dediğin B extends A BA. Bağımlılık enjeksiyonu yapmak, BgerektirirA değilolabilirbir 14**. Örneğin:

scala> trait User { def name: String }
defined trait User

scala> trait Tweeter {
     |   user: User =>
     |   def tweet(msg: String) = println(s"$name: $msg")
     | }
defined trait Tweeter

scala> trait Wrong extends Tweeter {
     |   def noCanDo = name
     | }
<console>:9: error: illegal inheritance;
 self-type Wrong does not conform to Tweeter's selftype Tweeter with User
       trait Wrong extends Tweeter {
                           ^
<console>:10: error: not found: value name
         def noCanDo = name
                       ^

Eğer sınıflara kullanılan herhangi bir hata neden olur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • knopik96

    knopik96

    7 Mayıs 2011
  • Madeon

    Madeon

    31 Ocak 2010