使用有什么影响def
vs. val
在 Scala 中定义一个常量、不可变的值?我显然可以写出以下内容:
val x = 3;
def y = 4;
var a = x + y; // 7
这两种说法有什么区别?哪一种表现更好/是推荐的方式/更惯用?我什么时候会使用其中一种而不是另一种?
假设这些是类级声明:
编译器会生成一个val
final
,这可以导致虚拟机更好地优化代码。
A def
不会将值存储在对象实例中,因此会节省内存,但需要每次都评估该方法。
为了两全其美,创建一个伴生对象并将常量声明为val
s there.
即代替
class Foo {
val MyConstant = 42
}
this:
class Foo {}
object Foo {
val MyConstant = 42
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)