rust - Rust 类型 + 生命周期的总和是多少?
问题描述
有一个特点可以做到这一点:
pub trait Device<'a> {
type RxToken: RxToken + 'a;
type TxToken: TxToken + 'a;
这是什么意思?为什么不type RxToken: RxToken<'a>
呢?
解决方案
让我们看一个例子:
trait SayHello {
fn say_hello(&self);
}
pub trait Device<'a> {
type MyType : SayHello + 'a;
}
如您所见,SayHello
它本身对生命周期约束一无所知,但MyType
被约束以满足SayHello
并且必须在生命周期内有效'a
。
相比之下,考虑
trait SayHello {
fn say_hello(&self);
}
pub trait Device2<'a> {
type MyType : SayHello;
}
在这里,Device2
没有生命周期要求MyType
- 它只需要满足SayHello
.
推荐阅读
- php - 动态数组,从选择中获取数据
- javascript - 在 for 循环中使用 FileReader 的 JavaScript“内存不足”错误
- python - 遍历 pandas 数据框中的行并匹配列表中的元组并创建一个新的 df 列
- r - 将列的组合转换为某种可解释的变量
- hadoop - Hortonworks Sanbox 错误:连接到 http://sandbox-hdp.hortonworks.com:50070 失败
- dialogflow-es - 从 Dialogflow 创建慢速回复
- javascript - 当更改为本地时,onSnapshot fromCache 始终为 false
- javascript - 如何在 React Native 中显示 expo 相机的图像
- excel - Excel 公式在 x 行后停止工作
- javascript - 打字稿中的联合返回类型