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
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)