rust 借用已移动的值错误,但该值不应已移动,因为它是借用的[重复]

brjng4g3  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(121)

此问题在此处已有答案

Iterate through a mutable reference of vector without moving the value from the vector(2个答案)
Move error in for-loop when not reborrowing a mutable slice(1个答案)
Do mutable references have move semantics?(1个答案)
昨天关门了。
我试着解释出现的错误,它说我不能借用一个被移动的值,但是这个值是被借用的值,所以当我在代码for nurse in nurse_list { ... }中使用它的时候,它不应该被移动到那里,它应该被借用。
第一个
我尝试在for循环for nurse in &nurse_list { ... }中再次借用nurse_list,然后返回以下错误:

src\main.rs:64:22
   |
64 |         for nurse in &nurse_list {
   |                      ^^^^^^^^^^^ `&&mut Vec<definitions::Nurse>` is not an iterator
   |
   = help: the trait `Iterator` is not implemented for `&&mut Vec<definitions::Nurse>`
dxxyhpgq

dxxyhpgq1#

类型&mut T是一个引用,它没有实现Copy,因此引用在第一个循环中移动,你不能再访问它了。要解决这个问题,你必须重新借用:

for nurse in &mut *nurse_list {…}

在每一个不希望nurse_list进入的循环中。

相关问题