背景
rustでvectorに入ってるstructをiter().find()で取得して、その値を変更しようとしたんだけど 取り出した値にmutとかつけてもコンパイルエラーで動かなかった
ネットであまり見つからないのでメモ代わりに残す
正解
以下のようにすればよかった
// 正解 if let Some(data) = list.iter_mut().find(|data| data.id == id) { // この中で変更処理 } // 間違い if let Some(data) = list.iter().find(|data| data.id == id) { let data_mut = mut data; // こうしても後続の処理でコンパイルエラー }