根据 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.
从这个意义上说,使用“=”运算符的赋值操作呢?这也是一种方法吗?似乎不太可能,因为它必须存在于所有类或某个公共(public)父类(super class)(例如 java.lang.Object ?)中,所有类都必须从中继承它。还是不是所有的操作都是 Scala 中的真正方法调用?
最佳答案
对 的一点补充贾廷 回答。有一种情况是=
可以认为是一个方法调用,但实际上它只是一个语法糖。在 Scala 的 OO 部分,其中丑陋的 var
的生活,你可以写如下:
class Test {
private var x0: Int = 0
def x = x0
def x_=(a: Int) = x0 = a
}
然后您可以将新整数分配给
x
:scala> val t = new Test
t: Test = Test@4166d6d3
scala> t.x = 1
t.x: Int = 1
最后一行将被脱糖为
t.x_=(1)
.我认为在这种情况下,考虑到语法糖,可以说 =
是一个方法调用。
关于scala - 在 Scala 中,赋值运算符 "="是方法调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19086851/