此问题在此处已有答案:
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>`
1条答案
按热度按时间dxxyhpgq1#
类型
&mut T
是一个引用,它没有实现Copy
,因此引用在第一个循环中移动,你不能再访问它了。要解决这个问题,你必须重新借用:在每一个不希望
nurse_list
进入的循环中。