`T : 'static` 是什么意思?

What does it mean `T : 'static`?

限制的正确理解是什么T : 'static? 据我了解,这意味着“任何实现 T 的东西都不应该直接或间接地具有引用/指针”。我问是因为我曾经认为这意味着任何实现 T 的东西都应该存在于应用程序的整个生命周期中,但现在这样的解释对我来说是错误的。

你的新理解是正确的。 T: 'static 意味着 T 不包含生命周期,或者 可能 在整个程序中都存在,但不必如此。

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

例如,String: 'static holds,但您可以随时删除 String,您将无法再访问它。只是如果我有一个 String 而我 放弃它,我可以永远持有它而不必担心它会在我背后失效,因为,比如说, 底层存储被释放。