在以下的锈代码我试图更改数组的内容:错误:不能分配到不可变索引内容`我[..]`
let mut example_state = [[0;8]; 2];
for mut i in example_state.iter() {
let mut k = 0;
for j in i.iter(){
i[k] = 9u8;
k +=1
}
}
但是我得到的错误消息:
src/main.rs:18:13: 18:23 error: cannot assign to immutable indexed content `i[..]`
src/main.rs:18 i[k] = 9u8;
我很困惑,因为我将i
定义为mut
和example_state
也是可变的。
我也不知道这是否是改变数组内容的最佳方式 - 我需要计数器k
还是我可以简单地以某种方式使用迭代器j
?
UPDATE: 所以我发现这个代码块的工作:
let mut example_state = [[n;8]; 2];
for i in example_state.iter_mut() {
for j in i.iter_mut(){
*j = 9u8;
}
}
,但我会很感激的区别是它们之间有什么一些解释,iter_mut
不投在谷歌了。
是不是所有的代码只是'let example_state = [[9u8; 8]; 2]'? – 2015-01-26 22:53:47
这是一个更复杂的简单例子 - 我试图理解为什么这个*不起作用。 – 2015-01-26 22:59:14
够公平的。无论如何,这是个好问题。 – 2015-01-26 23:00:33