选项的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
总是显而易见的。考虑到这是一个适应阶段,因为当返回函数的类型时,它返回一个选项是很明显的。“……除了,当类型实际上没有显式的时候,因为斯卡拉不一定鼓励显式地指定类型。