按照Scala的书"Scala编程" -
Scala is an object-oriented language in pure form: every value is an object and every operation is a method call. For example, when you say 1 + 2 in Scala, you are actually invoking a method named + defined in class Int.
从这个意义上说,使用"="运算符进行赋值运算呢?这也是一种方法吗?似乎不太可能,因为它必须存在于所有类或一些常见的超类(例如,java.lang.Object?)中,所有类都必须从中继承它.或者是不是所有操作都是Scala中的方法调用?
4le*_*x1v 20
Jatin答案的一点点补充.有一种情况=可以被认为是一种方法调用,但实际上它只是一种语法糖.在Scala的OO部分,丑陋var的生活在哪里,你可以写下面的内容:
class Test {
private var x0: Int = 0
def x = x0
def x_=(a: Int) = x0 = a
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以将新的int分配给x:
scala> val t = new Test
t: Test = Test@4166d6d3
scala> t.x = 1
t.x: Int = 1
Run Code Online (Sandbox Code Playgroud)
最后一行将被淘汰t.x_=(1).我认为在这种情况下,考虑到语法糖,可以说这=是一个方法调用.