|
|
@ -241,7 +241,7 @@ struct StaticRef<T: 'static>(&'static T);
|
|
|
|
|
|
|
|
|
|
|
|
<span class="caption">列表 19-18:在 `T` 上增加 `'static` 生命周期 bound 来限制 `T` 为只拥有 `'static` 引用或没有引用的类型</span>
|
|
|
|
<span class="caption">列表 19-18:在 `T` 上增加 `'static` 生命周期 bound 来限制 `T` 为只拥有 `'static` 引用或没有引用的类型</span>
|
|
|
|
|
|
|
|
|
|
|
|
没有任何引用的类型被算作 `T: 'static`。因为 `'static` 意味着引用必须同整个程序存活的一样长,一个不包含引用的类型满足所有引用都与程序存活的一样长的标准(因为他们没有引用)。可以这样理解:如果借用检查器关心的是引用是否存活的够久,那么没有引用的类型与有永远存在的引用的类型并没有真正的区别;对于确定引用是否比其所引用的值存活得较短的目的来说两者是一样的。
|
|
|
|
没有任何引用的类型就计为 `T: 'static`。因为 `'static` 意味着引用必须同整个程序存活得一样长,一个不包含引用的类型满足所有引用都与程序存活得一样长的标准(因为他们没有引用)。可以这样理解:如果借用检查器关心的是引用能存活多久,那么没有引用的类型与有引用且引用能一直存活的类型并没有真正的区别;对于确定引用是否比其所引用的值存活得较短的目的来说两者是一样的。
|
|
|
|
|
|
|
|
|
|
|
|
### trait 对象生命周期
|
|
|
|
### trait 对象生命周期
|
|
|
|
|
|
|
|
|
|
|
|