选项的Scala命名约定

选项的Scala命名约定,scala,naming-conventions,Scala,Naming Conventions,当我返回类型为Option的内容时,用函数名的名称解释它是一个选项而不是对象本身似乎很有用。例如,seq具有reduceOption。是否有标准的命名约定?我所看到的事情: maybeFunctionName functionname选项 -两者似乎都不太好。reduceOption和friends(headOption等)的命名方式只是为了将它们与不安全的替代品区分开来(可以说,这些替代品本来就不应该存在,也就是说,应该有一个head返回一个选项[a]) whateverOption不是标准库

当我返回类型为
Option
的内容时,用函数名的名称解释它是一个选项而不是对象本身似乎很有用。例如,seq具有
reduceOption
。是否有标准的命名约定?我所看到的事情:

maybeFunctionName

functionname选项


-两者似乎都不太好。

reduceOption
和friends(
headOption
等)的命名方式只是为了将它们与不安全的替代品区分开来(可以说,这些替代品本来就不应该存在,也就是说,应该有一个
head
返回一个
选项[a]


whateverOption
不是标准库(或我所知道的大多数其他Scala库)中的常规做法,一般来说,您不应该在Scala中使用这种匈牙利符号。

为什么要使函数名更长?它没有贡献任何东西,因为当查看函数的类型时,它返回一个选项这一事实是显而易见的


reduceOption是一种特殊情况,因为在大多数情况下,您确实希望使用reduce,但它不适用于空序列。

那么
functionNameOpt
呢?它很短,而且还是描述性的。命名约定
maybe…
可能更适合Haskell,其中选项类型称为
maybe
。请放松并忘掉它。很快,您就会对不暗示选项的成员名称感到满意,因为在实践中,成员是否能够返回
None
总是显而易见的。考虑到这是一个适应阶段,因为当返回函数的类型时,它返回一个选项是很明显的。“……除了,当类型实际上没有显式的时候,因为斯卡拉不一定鼓励显式地指定类型。