Scala类属性设定器中空格的作用

时间:2014-07-16 13:05:26

标签: scala

我有以下课程:

class Thing {
  var privateName = ""
  def name = privateName
  def name_=(newName: String) {
    if (!newName.trim().isEmpty()) {
      privateName = newName.trim()
    }
  }
}

如果我将name_方法定义为(注意" ="附近的其他空格):

def name_ = (newName: String) {
  if (!newName.trim().isEmpty()) {
    privateName = newName.trim()
}

然后编译器抱怨"值newName"没找到。

有人能解释一下这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

首先,您的方法名称为name_=,并将参数声明为newName。您对返回Unit的方法使用类似java的语法,即将方法定义为{...}而不是= ...

第二个名称是name_,没有参数,而=之后的定义以名为newName的字符串开头......并且它没有'得到任何进一步因为这不是范围内的值。