在Rust中,Java的最终结果是什么?

时间:2016-06-22 12:36:09

标签: java rust keyword

对于方法,属性等,Java final的Rust等价物是什么......

1 个答案:

答案 0 :(得分:9)

  • final方法没有意义,因为Rust没有实现继承。
  • final对于属性不存在,因为它与继承的可变性不能很好地融合。在大多数情况下,属性a.x是可变的,当且仅当其所有者a是可变的。虽然人们可以选择更多的可变性(这被称为固有的可变性),但是反过来(在一个其他可变值内的字段是不可变的)被认为是非常麻烦的。这部分是因为Rust不默认引用语义,所以即使你不能覆盖单个字段,也可以完全覆盖“对象”。
  • 局域变量的
  • final类似于Rust中的默认行为(默认情况下,变量是不可变的)。存在差异,主要是final本地引用类型仅阻止更改引用而不是引用的对象 - Rust继承了可变性,参见上文。