İsteğe bağlı / Belki türü dinamik dillerde yararlı mıdır?


14

Optionalstatik olarak yazılmış bir dilde bariz bir şekilde yararlıdır, ancak dinamik dillerde de yararlı olup olmadığını merak ediyorum. Genellikle, "hey, bunu Optional<String>bir String" olarak kullandınız "diyen bir derleyici yoktur , bu yüzden çalışma zamanında hatalarınızı keşfetmeniz gerekir. Statik yazım geçmişim var ve benim bakış açımdan Optionaldinamik bir dilde bir yazının yararını göremiyorum .

Yanıtlar:


13

Bu zayıflık, dinamik dillerdeki tüm türlerden gerçekten farklı değildir . İçinde ne olduğunu bulmak için koşmalısın. Seçenekler bu açıdan gerçekten farklı değil.

Seçenekler, bir değerin mevcut olabileceği veya bulunmayabileceği statik bir ek açıklamadan daha fazlasıdır. Onlarla ilişkili operasyonları da var. Seçenekler üzerindeki eşleştirilmiş işlem zincirleri, zincirin her adımından sonra hata olup olmadığını kontrol etmenizi engelleyen son derece kullanışlı bir özelliktir.

Sadece değeri hemen alsanız bile, programcının Nothingilk kez çalışıp başarısız olduğunu kontrol etmesini sağlar. Bir seçenek olmadan, bu ürün sadece nullilk kez çalıştırdığınızda gerçekleşecekse gerçekleşecektir. Birçok boş işaretçi dereference, ürün tarlaya gelene kadar inatla bekledi.


0

Objective-C için konuşabilirim.

Dinamik yazılan diller geç bağlandığından, "isteğe bağlı" (değerin temsil niledilmediği) olup olmadığını denetlemek doğaldır: Türü çalışma zamanında kontrol ederseniz, nilörtük olarak kontrol edersiniz . Tabii ki bu zincirlenebilir. Bu da doğal olarak yapılır.

Statik yazılan diller için bu ekstra kavram bir avantajdır, çünkü derleme zamanında tür kararını almak zorundadırlar - dinamik yazılan dillerin asla sahip olmadığı bir durum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.