什么 - =运算符在scala def上下文中的含义

时间:2016-05-24 05:21:43

标签: scala

我在Kafka源代码中发现了以下奇怪的def定义语法。有人可以帮助我理解这种语法,因为我无法在scala文档中找到它。第一个def定义有效但第二个定义不起作用

  private def test_=(x: Int) {

  }

  private def test=(x: Int) {

  }

1 个答案:

答案 0 :(得分:3)

它不是运营商。只有一个特殊的规则,如果你有一个名称以_=结尾的方法和一个参数,一个没有_=同名的无参数方法(在这种情况下为def test = ...),然后Scala会将foo.test = ...理解为foo.test_=(...)来电。