Java 在 Rust 中的 final 是什么?

What is the equivalent of Java's final in Rust?

在方法、属性等方面 Java 的 final 的 Rust 等价物是什么...

  • final 对于方法没有意义,因为 Rust 没有实现继承。
  • final 的属性不存在,因为它与 继承的可变性 没有很好地结合。在大多数情况下,当且仅当它们的所有者 a 是可变的时,属性 a.x 是可变的。虽然可以选择更多的可变性(这被称为 inherent 可变性),但相反(一个字段在其他可变值内不可变)被认为太麻烦而不值得。这部分是因为 Rust 没有默认引用语义,所以即使您不能覆盖单个字段,您也可以始终完全覆盖 "object"。
  • 局部变量的
  • final 类似于 Rust 中的 默认行为 (默认情况下,变量是深度不可变的)。存在差异,主要是引用类型的 final 局部仅防止更改 reference 而不是 引用的对象 — Rust 继承了可变性,见上文。