为什么我不能在同一个结构中存储值和对该值的引用?
我有一个值,我想在我自己的类型中存储该值以及对该值内部内容的引用:
struct Thing { count: u32,}struct Combined<'a>(Thing, &'a u32);fn make_combined<'a>() -> Combined<'a> { let thing = Thing { count: 42 }; Combined(thing, &thing.count)}
有时候,我有一个值,我想在同一个结构中存储该值和对该值的引用:
struct Combined<'a>(Thing, &'a Thing);fn make_combined<'a>() -> Combined<'a> { let thing = Thing::new(); Combined(thing, &thing)}
有时,我甚至没有参考该值,我得到同样的错误:
struct Combined<'a>(Parent, Child<'a>);fn make_combined<'a>() -> Combined<'a> { let parent = Parent::new(); let child = parent.child(); Combined(parent, child)}
在每种情况下,我都会收到错误,其中一个值“活不够长”。这个错误是什么意思?