在此代码中:
fn main() {
let a = {
&mut vec![1]
};
let b = {
let temp = &mut vec![1];
temp
};
println!("{a:?} {b:?}");
}
为什么a
是有效的,b
是无效的("temporary value dropped while borrowed [E0716]")?
对我来说,如果他们都是有问题的,为什么不取消a
人中的VEC?
这仅仅是因为编译器可以理解第一个示例,而第二个示例太难理解了吗?