For loop 如何在for循环中执行可变借用?

For loop 如何在for循环中执行可变借用?,for-loop,rust,mutable,borrow-checker,For Loop,Rust,Mutable,Borrow Checker,我试过: fn main(){ 设mut-vec=[1,2,3]; 对于&vec{*x=3;}中的mut x 对于&vec{x=3;}中的mut&x 对于mut*x in&vec{x=3;} 对于mut&vec{*x=3;}中的mut x 对于&(mut-vec){*x=3;} } 这些都不管用;我该怎么做 我会遇到如下错误: mut必须附加到每个单独的绑定 预期标识符,找到* 预期表达式,找到关键字mut 无法将*x分配给&引用后面的*x 您可能需要重新阅读,特别是以下章节:

我试过:

fn main(){
设mut-vec=[1,2,3];
对于&vec{*x=3;}中的mut x
对于&vec{x=3;}中的mut&x
对于mut*x in&vec{x=3;}
对于mut&vec{*x=3;}中的mut x
对于&(mut-vec){*x=3;}
}
这些都不管用;我该怎么做

我会遇到如下错误:

  • mut
    必须附加到每个单独的绑定
  • 预期标识符,找到
    *
  • 预期表达式,找到关键字
    mut
  • 无法将
    *x
    分配给
    &
    引用后面的
    *x
您可能需要重新阅读,特别是以下章节:

我们还可以迭代可变向量中每个元素的可变引用,以便对所有元素进行更改。清单8-9中的
for
循环将向每个元素添加
50

让mut v=vec![100, 32, 57];
对于i in&mut v{
*i+=50;
}
清单8-9:迭代向量中元素的可变引用

要更改可变引用引用的值,我们必须先使用解引用运算符(
*
)获得
i
中的值,然后才能使用
+=
运算符

此外,您还可以调用以下方法:

让mut v=vec![100, 32, 57];
在v.iter_mut()中的i{
*i+=50;
}
另见:



请注意,您的变量不是向量。这是一个数组。

谢谢。我完全错过了mut x in&(mut vec)