3

这个例子是微不足道的,只是为了说明这一点。

假设我使用矩阵库,但缺乏一些功能,假设将矩阵中的每个元素加倍对我来说非常重要,我决定编写一个方法doubleIt。但是,我可以编写此方法的 2 个版本

  1. 可变——doubleItInPlace
  2. 不可变——doubleItByCreatingNewOne

这有点冗长,所以可以考虑命名约定,添加到可变版本_!后缀,或者在它前面加上单词“mut”。

是否有任何建立命名约定来产生这种差异?

4

1 回答 1

9

约定是用命令式形式的动词命名可变(通常是副作用)版本。此外,更重要的是,()最后使用空参数列表:

def double()
def doubleIt()

不可变版本,即产生一个新对象的版本,您应该以被动形式通过动词命名。更重要的是,最后不要使用空参数列表()

def doubled
def doubledMatrix

请注意,不总是以被动形式命名无副作用的方法(例如标准集合库),但这是一个好主意,除非它使名称过于冗长。

来源:Scala 风格指南

于 2012-09-16T11:55:35.237 回答