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
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
B
A
. Bağımlılık enjeksiyonu yapmak, B
gerektirirA
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.
Eski stil ve yeni stil Python sınıflar...
Bool ve C Boolean türleri arasındaki f...
Bir özellik, bir istek spec arasındaki...
'MySQL BOOL arasındaki fark nedir...
Bir URI, URL ve URN arasındaki fark ne...