2012-08-09 94 views
5

當我返回Option類型的東西時,似乎很有必要在函數名稱的名稱中解釋它是一個選項,而不是它本身。例如,seqs有reduceOption。是否有標準的命名約定?事情我已經看到:Scala命名約定的選項

maybeFunctionName

functionNameOption

- 既不似乎是所有偉大。

+2

'functionNameOpt'呢?它更短,仍然是描述性的。 命名約定'也許...'可能更適合Haskell,其中選項類型被稱爲'Maybe'。 – 2012-08-09 15:58:56

+3

只是放鬆,忘記它。不久之後,您會對會員姓名不會提示任何選項感到滿意,因爲在實踐中,會員是否能夠返回「無」是顯而易見的。考慮到這個適應階段 – 2012-08-09 16:41:23

回答

13

reduceOption和朋友(headOption等)僅命名的方式,從他們的不安全替代品區分開來(這可以說是不應該擺在首位,即存在,應該只是一個head返回一個Option[A]) 。

whateverOption在標準庫(或者我知道的大多數其他Scala庫)中並不常用,一般情況下,您不需要或不想在Scala中使用這種匈牙利表示法。

7

爲什麼你想讓你的函數名更長?它沒有任何貢獻,因爲在查看函數的類型時,返回Option的事實很明顯。

reduceOption是一種特殊情況,因爲在大多數情況下,您真的想使用reduce,只是它不適用於空序列。

+0

「,因爲在查看函數的類型時,返回選項的事實顯而易見。」 ...除非類型實際上沒有明確表示,因爲Scala不一定鼓勵明確指定類型。 – omnilinguist 2014-02-12 00:38:00