2.5.7 其他场景的不变性
1分钟内可阅读完
译文 · 基于 Learning Rust
其他场景的不变性
原文链接: https://quinedot.github.io/rust-learning/st-more-invariance.html
虽然 &mut 背后是最常首次遇到不变性的地方,但它也出现在其他地方。
Cell<T> 和 RefCell<T> 在 T 上同样是不变的。
trait 参数也是不变的。因此,带生命周期参数的 trait 可能很难使用。
此外,如果你有像 T: Trait<U> 这样的约束,U 会变成不变的,因为它是 trait 的类型参数。如果你的 U 解析为 &'x V,生命周期 'x 也会是不变的。
关联类型也是不变的。
-> impl Trait 类型也是不变的。