`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
而我 不 放弃它,我可以永远持有它而不必担心它会在我背后失效,因为,比如说, 底层存储被释放。
限制的正确理解是什么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
而我 不 放弃它,我可以永远持有它而不必担心它会在我背后失效,因为,比如说, 底层存储被释放。