2012-08-09 24 views
5

Option türünde bir şey döndürdüğümde, işlevin adının kendisi değil, bir seçenek olduğunu açıklamak yararlı olur. Örneğin, seq'ler reduceOption'a sahiptir. Standart bir adlandırma kuralı var mı? Gördüğüm şeyler:Scala adlandırma seçenekleri için seçenekler

maybeFunctionName

functionNameOption

- ne tüm bu büyük gibi görünüyor.

+2

'functionNameOpt' nedir? Daha kısa ve hala tanımlayıcı. Adlandırma kuralı 'belki ... 'muhtemelen daha çok Haskell'e uygundur, burada seçenek türü" Belki "olarak adlandırılır. –

+3

Sadece rahatlayın ve unutun. Yakında, seçenek hakkında ipucu vermeyen üye isimleriyle kendinizi rahat hissedeceksiniz, çünkü pratikte, üyenin "Hiçbiri" ni iade edip edemeyeceği her zaman açıktır. Bu bir uyarlama fazı –

cevap

13

reduceOption ve arkadaşları (headOption vs.) sadece kendi güvensiz alternatifleri ayırt etmek bu şekilde adlandırılmıştır (belki ilk etapta-yani bulunmamalıdır, sadece bir Option[A] döndüren bir head olmamalıdır) .

whateverOption, standart kitaplıktaki (veya bildiğim diğer birçok Scala kitaplığı) alışılmış uygulama değildir ve genel olarak Scala'da bu tür bir Macar işaretini kullanmanız veya istememeniz gerekir.

7

Neden işlev adlarınızı daha uzun yapmak istiyorsunuz? Hiçbir şeye katkıda bulunmaz, çünkü bir Seçeneği döndürmesi, işlevin türüne bakıldığında barizdir.

reduceOption özel bir durumdur, çünkü çoğu durumda boş dizilerde çalışmadığı sürece, gerçekten de azaltmak istediğinizde kullanabilirsiniz.

+0

"düşünün, çünkü bir Seçeneği döndürürse, işlevin türüne bakıldığında çok açıktır." ... Scala, türlerin açıkça belirtilmesini teşvik etmediği için, türün aslında açık bir şekilde yapılmadığı durumlar dışında. – omnilinguist

İlgili konular