Scala中的方法命名约定 - 可变而不是版本?

时间:2012-09-16 11:18:32

标签: scala naming-conventions method-names

这个例子只是为了说明这一点。

假设我使用矩阵库,但缺乏一些力量,让我们说矩阵中的每个元素加倍对我来说至关重要,我决定编写一个方法doubleIt。但是,我可以写这个方法的两个版本

  1. mutable - doubleItInPlace
  2. non mutable - doubleItByCreatingNewOne
  3. 这有点冗长,因此可以考虑命名约定,添加可变版本_!后缀,或者在其前面添加单词“mut”。

    是否有任何建立的命名约定来实现这种差异?

1 个答案:

答案 0 :(得分:9)

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

def double()
def doubleIt()

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

def doubled
def doubledMatrix

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

来源:Scala styleguide