我在Kafka源代码中发现了以下奇怪的def定义语法。有人可以帮助我理解这种语法,因为我无法在scala文档中找到它。第一个def定义有效但第二个定义不起作用
private def test_=(x: Int) {
}
private def test=(x: Int) {
}
答案 0 :(得分:3)
它不是运营商。只有一个特殊的规则,如果你有一个名称以_=
结尾的方法和一个参数,和一个没有_=
同名的无参数方法(在这种情况下为def test = ...
),然后Scala会将foo.test = ...
理解为foo.test_=(...)
来电。