对限制T : 'static的正确理解是什么?

推荐答案

你的新理解是正确的.T: 'static意味着T不包含生命周期,或者may在整个程序中处于活动状态,但不一定要包含.

另见第Common Lifetime Misconceptions: if T: 'static then T must be valid for the entire program页.

例如,String: 'static holds,但你可以随时放下String,你不能再访问它了.只是如果我有一个String,我把它扔了don't,我就可以永远拿着它,而不用担心它会在我背后失效,因为,比方说,底层存储被释放了.

Rust相关问答推荐

当Option为None时,Option数组是否占用Rust中的内存?

在函数内定义impl和在函数外定义impl的区别

有没有办法模仿对象安全克隆?

如何将像烫手山芋一样不透明的值从一个Enum构造函数移动到下一个构造函数?

在我的Cargo 中,当我在建筑物中使用时,找不到我可以在产品包中使用的 crate .r我如何解决这个问题?

我是否可以在Ruust中修改 struct 实例上的字符串,以使其在修改后具有相同的字符串生存期?

装箱特性如何影响传递给它的参数的生命周期 ?(举一个非常具体的例子)

在为第三方 struct 实现第三方特征时避免包装器的任何方法

随机函数不返回随机值

借来的价值生命周期 不够长,不确定为什么它仍然是借来的

unwrap 选项类型出现错误:无法移出共享引用后面的*foo

Rust:为什么 Pin 必须持有指针?

从光标位置旋转精灵

为什么允许重新分配 String 而不是 *&String

使用部分键从 Hashmap 中检索值

为什么 Rust 编译器在移动不可变值时执行复制?

为什么 u64::trailing_zeros() 在无分支工作时生成分支程序集?

如何在 Rust 中构建一个 str

在 Rust 中组合特征的不同方法是否等效?

子类型和方差(&mut invariant)违反了 rust 中的错误