我目前正在阅读 Rust 实现
std::any::Any
的代码。
这是特质的声明。
pub trait Any: 'static
如果我的理解是正确的,这定义了一个特征
Any
,它继承自冒号':'
字符后面的所有内容。
在这种情况下,我们有
'static
。
引号字符
'
对我来说这是一个终生宣言。
我想了解如何解释这一点。
我认为特质只能从其他特质继承。这可能表明
'static
是一种特质。这是正确的吗?
如果不是,并且
'static
是生命周期规范而不是特征,那么我应该如何解释这行代码? 'static
会带来什么后果?它强制执行什么行为 Any
?
Rust 中没有继承。特征定义中的语法
: ...
定义了实现者必须满足的界限。如果是一生,那就是一生的束缚。
在这种情况下,这意味着要实现
Any
的对象必须满足生命周期界限'static
,即它可能不是或包含寿命短于'static
的引用。