2012-09-16 48 views
3

这个例子很简单,只是为了说明这一点。Scala中的方法命名约定 - 可变而不是版本?

比方说我使用矩阵库,但缺乏一些力量,比方说,矩阵中的每个元素加倍对我来说非常重要,我决定写一个方法doubleIt。不过,我可以写2个版本的这种方法

  1. 可变的 - doubleItInPlace
  2. 非易变 - doubleItByCreatingNewOne

这是一个有点冗长,所以一个能想到的命名约定,加入到可变版本_!后缀,或用单词“mut”作为前缀。

是否有任何建立命名约定,使这种差异?

回答

9

该约定是命名可变形式(一般来说,副作用)版本的动词命令形式。此外,更重要的是,使用空参数列表()末:

def double() 
def doubleIt() 

不可改变的版本,即一个制作一个新的对象,你应该通过被动形式的动词名。更重要的是,不要在最后使用空参数列表()

def doubled 
def doubledMatrix 

注意,在被动的形式命名的非副作用的方法并不总是遵守(如标准的集合库),但一个好主意,除非它使名字过于冗长。

来源:Scala styleguide