Scala中最终var的用法是什么?
Scala中最终var的用法是什么?什么是行为.有没有用例?
(另见,Why are `private val` and `private final val` different?,非常接近,但不一样) 解决方法
决赛意义重大.
它可能意味着“不能在子类中覆盖”,因此最终变量. apm@mara:~$skala -Yoverride-vars Welcome to Scala version 2.11.0-20130811-132927-95a4d6e987 (OpenJDK 64-Bit Server VM,Java 1.7.0_25). Type in expressions to have them evaluated. Type :help for more information. scala> trait Foo { var v = 7 } defined trait Foo scala> trait Bar extends Foo { override var v = 8 } defined trait Bar scala> trait Foo { final var v = 7 } defined trait Foo scala> trait Bar extends Foo { override var v = 8 } <console>:8: error: overriding variable v in class Foo$class of type Int; variable v cannot override final member trait Bar extends Foo { override var v = 8 } ^ final val i = 7是一个常量值定义(也就是编译时间常数),但是val i = 7不是,不管访问修饰符如何. 之前引用过这个,但是5.2规范:
和4.1
final val x = e
编辑:抱歉,没有注意到你特意没有询问.孩子们正准备睡觉,刷牙,所有这一切,有点分心. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |