Rust 返回带引用的结构的Vec时生命周期参数的数目错误
我有一个包含引用的结构:Rust 返回带引用的结构的Vec时生命周期参数的数目错误,rust,Rust,我有一个包含引用的结构: pub struct ScheduledItem<'a> { pub item: &'a item::Item, pub timeshift: i32 } pub-struct-ScheduledItem{ 但我得到的是一个错误: src/scheduled_item.rs:25:74: 25:87 error: wrong number of lifetime parameters: expected 1, found 0 [E
pub struct ScheduledItem<'a> {
pub item: &'a item::Item,
pub timeshift: i32
}
pub-struct-ScheduledItem{
但我得到的是一个错误:
src/scheduled_item.rs:25:74: 25:87 error: wrong number of lifetime parameters: expected 1, found 0 [E0107]
src/scheduled_item.rs:25 pub fn items_with_times<'a>(items: &Vec<ScheduledItem>) -> Vec<(u32, &'a ScheduledItem)> {
^~~~~~~~~~~~~
src/scheduled_item.rs:25:74:25:87错误:生命周期参数数量错误:应为1,找到0[E0107]
src/scheduled\u item.rs:25个pub fn items\u和\u时间{
^~~~~~~~~~~~~
&a
还不够吗?这里怎么了?您的结构有一个通用的生存期参数。在Rust中,您需要指定所有通用参数(例如,您不能返回一个Vec
,只能返回一个Vec
),因此您的返回类型应该是Vec]
,因为&Vec
对&t]
没有好处
&a
还不够吗
&'a T
指定它是对aT
的生命周期'a
的引用,这意味着它指向的对象不比'a
的生命周期长
T
type的寿命不超过'a
。这反过来意味着该类型的任何对象都不会超过'a
,并且该对象不能包含对寿命短于'a
的对象的引用。您可以尝试和ScheduledItem
src/scheduled_item.rs:25:74: 25:87 error: wrong number of lifetime parameters: expected 1, found 0 [E0107]
src/scheduled_item.rs:25 pub fn items_with_times<'a>(items: &Vec<ScheduledItem>) -> Vec<(u32, &'a ScheduledItem)> {
^~~~~~~~~~~~~