在以下的鏽代碼我試圖更改數組的內容:錯誤:不能分配到不可變索引內容`我[..]`
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