24 HAZİRAN 2010, PERŞEMBE
Scala avantajları's type system
Scala dili keşfetmek duyuyorum. Ben sık sık duymak bir iddia Scala bir olmasıdırdaha güçlüyazın Java sistem. İnsanlar ne demek istediğimi sanırım bu:
scalac
javac
Ne mutlu ki, tek bir çalışma zamanı hatası neden derlenir bazı buggy programları reddeder.- Bazı değişmezler Scala bir program derleyici programcı durumu ihlal eden bir kod yazmaya izin vermiyor gibi kodlanmış olabilir.
Öyle düşünmekte haklı mıyım? Eğer öyleyse, lütfen bu tür örnekler gösteren/Gazeteler/bloglar makaleler işaretleyin.
CEVAP
24 HAZİRAN 2010, PERŞEMBE
Scala Türü sisteminin başlıca avantajı çok değildaha güçlüama uzak olmak daha iyidaha zengin("The Scala Type System").
(Java bazıları tanımlamak, ve diğerleri uygulayabilirsiniz, ama Scala onları built-in) vardır.
Ayrıca 12**, Steve Yegge's blog post nereye yorum bakın o "" "Frankenstein" "yazın türleri, yazın türleri vardır". çünkü Scala gibi disses
- Değer türü sınıflar () değeri semantiği olan oldukça küçük veri yapıları için yararlı ilkel türleri yerine kullanılan (Double, İnt...), "" ek yöntemler için. sınıfları Zengin örtülü dönüşüm
- Nonnullable type
- Monad types
- Özellik türleri (ve onunla birlikte gelen mixin composition)
- Singleton nesne türleri (sadece bir tanımla 'nesne' ve bir var),
- Compound types (bir nesne türü bazı başka tür bir alt türü olduğunu ifade etmek için nesne türlerini, kavşak),
- Functional types (
(type1, …)=>returnType
sözdizimi), - Case classes (kurucu parametreleri ihracat ve desen eşleştirme ile özyinelemeli bozunma mekanizması sağlayan düzenli sınıflar)
- Path-dependent types (iç içe türleri izin Dilleri, bu tür yollara başvurmak için yollar sunar),
- Anonymous types (tanımlama anonim işlevler için)
- Self types (used for instance in Trait),
- Type aliases, ile birlikte
- 25* *(2.8) tanıttı
- Generic types (Java gibi), genel türleri kistlerinin alt tiplerinin belirlenmesindeki kontrol type parameter annotation mechanism bir davranış,
- Kovaryant genel türleri:
T
tipiT
sadece kovaryant pozisyonlarda kullanılmak üzere bildirir açıklama.Stack[T]
T
S
alt tipi iseStack[S]
çalışmaları devam ediyor. - Karşıtı genel türleri:
-T
T
tek karşıtı bir başlangıç olarak ilan ederlerdi.
- Kovaryant genel türleri:
- Sınırlı genel türleri Java supports some part of it olsa bile)
- Bir Java Jenerik ile mümkün olandan daha gelişmiş tür ilişkileri ifade etmek için izin Higher kinded types,,
- Abstract types (genel tür için alternatif),
- Existential types (in Scala Java joker tür gibi kullanılır),
- Implicit types ("The awesomeness of Scala is implicit",
- View bounded types
- Structural types istenilen tür özellikleri belirterek bir tür specifing için (ördek) yazarak.
Bunu Paylaş:
Nasıl HTML5 input type=&; numara"...
Scala arkadaşı nesneleri olmasının ard...
Stil input type=&; dosya" düğme"...
Keyfi scala kod konum sırasında tercüm...
Yineleyici ve Scala Akış arasındaki fa...