Scala中的var和val定义有什么区别?为什么这两种定义都需要?为什么你会选择val而不是var,反之亦然?


当前回答

就像它的名字一样简单。

Var表示它可以变化 Val表示不变

其他回答

就像它的名字一样简单。

Var表示它可以变化 Val表示不变

val表示不可变,var表示可变

解释一下,“val表示值,var表示变量”。

A distinction that happens to be extremely important in computing (because those two concepts define the very essence of what programming is all about), and that OO has managed to blur almost completely, because in OO, the only axiom is that "everything is an object". And that as a consequence, lots of programmers these days tend not to understand/appreciate/recognize, because they have been brainwashed into "thinking the OO way" exclusively. Often leading to variable/mutable objects being used like everywhere, when value/immutable objects might/would often have been better.

虽然很多人已经回答了Val和var之间的区别。 但是需要注意的一点是val并不完全像final关键字。

我们可以用递归改变val的值,但我们永远不能改变final的值。Final比Val更恒定。

def factorial(num: Int): Int = {
 if(num == 0) 1
 else factorial(num - 1) * num
}

方法参数默认为val,并且在每次调用时都会更改值。

Val表示最终值,不能重新赋值

而Var可以在以后重新分配。

Val是最终值,即不能设置。在java中考虑final。