首页 > 解决方案 > Rust 类型 + 生命周期的总和是多少?

问题描述

有一个特点可以做到这一点:

pub trait Device<'a> {
    type RxToken: RxToken + 'a;
    type TxToken: TxToken + 'a;

这是什么意思?为什么不type RxToken: RxToken<'a>呢?

标签: rust

解决方案


让我们看一个例子:

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.


推荐阅读