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