对于方法、属性等,Java 的 final
的 Rust 等价物是什么...
最佳答案
-
方法的
final
没有意义,因为 Rust 没有实现继承。
属性的 final
不存在,因为它与继承的可变性 没有很好地结合。在大多数情况下,属性a.x
是可变的,当且仅当它们的所有者a
是可变的。虽然可以选择更多的可变性(这被称为固有可变性),但相反的情况(一个字段在其他可变值中是不可变的)被认为太麻烦而不值得。这部分是因为 Rust 没有默认引用语义,所以即使您不能覆盖单个字段,您也可以始终完全覆盖“对象”。
局部变量的 final
类似于 Rust 中的默认行为(默认情况下,变量是深度不可变的)。存在差异,主要是引用类型的final
局部变量仅防止更改 引用 而不是 引用的对象 — Rust 继承了可变性,见上文。
关于java - Java 在 Rust 中的 final 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37968199/