Bu soruyu cevaplandırılabilir hale getirmek için, bir programcının aklındaki belirsizlik maliyetinin birkaç ekstra tuşa basılmasından çok daha pahalı olduğunu varsayalım.
Buna göre, neden takım arkadaşlarımın işlev parametrelerine açıklama yapmamaları ile kaçmalarına izin vereyim ? Aşağıdaki kodu, çok daha karmaşık bir kod parçasının ne olabileceğinin bir örneği olarak alın:
let foo x y = x + y
Şimdi, ipucunun hızlı bir incelemesi size F # 'nin x ve y'nin ints olmasını istediğinizi belirlediğini gösterecektir. Eğer istediğin buysa, her şey yolunda. Ama istediğini yapıp yapmadığını bilmiyorum. İki dizeyi birleştirmek için bu kodu oluşturduysanız ne olur? Ya da muhtemelen iki kat eklemek istediğinizi düşünüyorsanız? Ya da türünü belirlemek için fareyi her bir işlev parametresinin üzerine getirmek istemiyorsam ne olur?
Şimdi bunu örnek olarak alın:
let foo x y = "result: " + x + y
F # şimdi muhtemelen dizeleri birleştirmek istediğinizi varsayar, bu nedenle x ve y dizeleri olarak tanımlanır. Bununla birlikte, kodunuzu koruyan zavallı adam olarak, buna bakabilirim ve belki birlikte x ve y (inç) eklemek isteyip istemediğinizi merak edebilir ve sonucu UI amaçları için bir dizgeye eklemeyi isteyip istemediğinizi merak edebilirim.
Kesinlikle bu kadar basit örnekler için, bir kişi onun gitmesine izin verebilirdi, ancak neden açık türden bir açıklama politikası uygulamıyor?
let foo (x:string) (y:string) = "result: " + x + y
Belirsiz olmanın zararı nedir? Elbette, bir programcı yapmaya çalıştıkları şey için yanlış türler seçebilirdi, ama en azından bunu amaçladıklarını biliyorum, sadece bir gözetim değildi.
Bu ciddi bir soru ... F # için hala çok yeniyim ve şirketimin izini sürdüm. Benim kabul ettiğim standartlar, gelecek yılların kültürüne nüfuz edeceğinden emin olduğum bitmeyen kopyala yapıştırma içine gömülü olan gelecekteki F # kodlamasının temeli olacaktır.
Öyleyse ... F # 'nin tip çıkarımında, tutulması için değerli bir özellik haline getiren, sadece gerektiğinde not veren özel bir şey var mı? Veya uzman F # kullanıcıları, önemsiz olmayan uygulamalar için parametrelerini açıklama alışkanlığı yaratır mı?