以下代码可以正常编译:
它并不表示
pub struct Reader<'a> {
position: uint,
data: &'a [u8]
}
这是一个读取器,它以u8
类型的向量(实际上是切片)作为引用,并指定了生命周期。
然而,这并不完全符合我的要求。我想使结构体成为通用型,更加准确地说,我想表示该类型应该是任何东西的切片。首先,我尝试了以下内容:
pub struct Reader<'a, T> {
position: uint,
data: &'a T
}
它并不表示
T
是一个slice,但是这已经失败并显示以下信息:好了,所以我只需要指定生命周期。但是现在我的问题是如何使它成为Slice类型并具有生命周期?我尝试了一些像参数类型
T
可能无法存活足够长的时间;考虑添加显式生命周期约束T: 'a
...
Reader<'a, T: 'a Vec>
和T: 'a [T]
之类的东西,但我不知道应该如何表示它,官方指南似乎没有处理这种情况。我只想构建一个Reader,通过借用任何类型的slice,并提供操作数据的方法(以只读方式)。