В следующем коде ржавчины я пытаюсь изменить содержимое массива:
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
не сильно зациклится на Google.