这个例子是微不足道的,只是为了说明这一点。
假设我使用矩阵库,但缺乏一些功能,假设将矩阵中的每个元素加倍对我来说非常重要,我决定编写一个方法doubleIt
。但是,我可以编写此方法的 2 个版本
- 可变——
doubleItInPlace
- 不可变——
doubleItByCreatingNewOne
这有点冗长,所以可以考虑命名约定,添加到可变版本_!
后缀,或者在它前面加上单词“mut”。
是否有任何建立命名约定来产生这种差异?
这个例子是微不足道的,只是为了说明这一点。
假设我使用矩阵库,但缺乏一些功能,假设将矩阵中的每个元素加倍对我来说非常重要,我决定编写一个方法doubleIt
。但是,我可以编写此方法的 2 个版本
doubleItInPlace
doubleItByCreatingNewOne
这有点冗长,所以可以考虑命名约定,添加到可变版本_!
后缀,或者在它前面加上单词“mut”。
是否有任何建立命名约定来产生这种差异?
约定是用命令式形式的动词命名可变(通常是副作用)版本。此外,更重要的是,()
最后使用空参数列表:
def double()
def doubleIt()
不可变版本,即产生一个新对象的版本,您应该以被动形式通过动词命名。更重要的是,最后不要使用空参数列表()
:
def doubled
def doubledMatrix
请注意,不总是以被动形式命名无副作用的方法(例如标准集合库),但这是一个好主意,除非它使名称过于冗长。
来源:Scala 风格指南。