Soru, kodumu anlamak için çok daha zor hale getirmeyen örtük tip dönüşüm operatörünün kullanım durumları nelerdir?
Türleri zaman değil (programcılar için) bir ilgisi yoktur. Aslında ilişkili olan (etki alanı veya makul programcılar için) iki ilişkisiz türün (kod söz konusu olduğunda) olduğu (nadir) senaryolar vardır.
Örneğin, dize eşleştirmesi yapmak için bazı kodlar. Yaygın bir senaryo, bir dize değişmez değeriyle eşleşmektir. Aramak yerine IsMatch(input, new Literal("some string"))
, örtük bir dönüşüm bu törenden - koddaki gürültüden - kurtulmanıza ve dizgi değişmezine odaklanmanıza izin verir.
Çoğu programcı IsMatch(input, "some string")
neler olup bittiğini hızla görecek ve sezecektir. Arama sitesinde kodunuzu daha net hale getirir. Kısacası, biraz daha kapsamlı hale getirir neyi hafif bir pahasına, oluyor nasıl o oluyor.
Şimdi, aynı şeyi yapmak için basit bir fonksiyon aşırı yükünün daha iyi olacağını iddia edebilirsiniz. Ve budur. Ancak bu tür bir şey her yerde mevcutsa, bir dönüştürmeye sahip olmak, aşırı işlev yükleri yığını yapmaktan daha temizdir (daha az kod, tutarlılık artar).
Ve programcıların ara türünü açıkça oluşturmalarını istemenin daha iyi olduğunu ve böylece "gerçekten neler olduğunu" görmelerini sağlayabilirsiniz. Bu daha az açıktır. Şahsen, gerçek dize eşleme örneğinin "gerçekten neler olup bittiğiyle ilgili" çok açık olduğunu düşünüyorum - programcının her şeyin nasıl gerçekleştiğinin mekaniğini bilmesine gerek yok . Tüm kodunuzun, kodunuzun üzerinde çalıştığı çeşitli işlemciler tarafından nasıl yürütüldüğünü biliyor musunuz? Programcıların bir şeyin nasıl işlediğini umursamayı bıraktıkları bir soyutlama çizgisi vardır . Örtük dönüşüm adımlarının önemli olduğunu düşünüyorsanız, örtük dönüşümü kullanmayın. Bilgisayarı mutlu etmek için tören olduklarını düşünüyorsanız ve programcı bu gürültüyü her yerde görmemek daha iyi olurdu,