2012-08-09 63 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