对限制的正确理解是什么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
并且我不丢弃它,我可以永远持有它,而不必担心它会在我背后失效,因为,比如说,底层存储被释放。
关于rust - `T : ' static`是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72084162/