无法向Symbol添加更新方法

Mar*_*rin 3 scala

我正在尝试向Symbol类添加更新方法.

class SymbolUpdate(s: Symbol) {
    def update(i: Int) = s.name + i
}
implicit def toSymbolUpdate(s: Symbol) = new SymbolUpdate(s)
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时,我得到以下内容

scala> 's = 1
<console>:327: error: value update is not a member of object Symbol
              's = 1
              ^
Run Code Online (Sandbox Code Playgroud)

但是当我直接调用该方法时它确实有效.

scala> 's.update(1)
res41: java.lang.String = s1
Run Code Online (Sandbox Code Playgroud)

或者,如果我显式地放置一个空参数数组.

scala> 's() = 1
res42: java.lang.String = s1
Run Code Online (Sandbox Code Playgroud)

不确定我的代码有什么问题?

lee*_*777 5

根据Scala语言规范:

f(args) = e具有'='运算符左侧的函数应用程序的赋值被解释为f.update(args, e),即调用由update函数定义的函数f.

如果您阅读Scala编程中的相应部分,则会特别清楚:

类似地,当对已应用括号和一个或多个参数的变量进行赋值时,编译器会将其转换为更新方法的调用,该方法接受括号中的参数以及右侧的对象.等于标志.

总之,我认为它是指需要括号.