回答編集履歴
1
誤字を修正しました
answer
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
`Vec`の`into_iter()`で`Vec<_>`の各要素の所有権を取ろうとしています。しかし、`Mutex`に入れたものは普通にアクセスしたのでは所有権が取れません。そのためにエラーになっています。
|
|
19
19
|
|
|
20
|
-
一方、`Mutex`に入れたものについて`&`や`&mut`なら簡単に得られます。`.await`は`&mut`を要求するので、それを渡してあげましょう。`Vec`の`
|
|
20
|
+
一方、`Mutex`に入れたものについて`&`や`&mut`なら簡単に得られます。`.await`は`&mut`を要求するので、それを渡してあげましょう。`Vec`の`iter_mut()`を使います。
|
|
21
21
|
|
|
22
22
|
```rust
|
|
23
23
|
// &mut Vec<_>を得るためにはまずMutexGuardにmutが必要
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
|
|
83
83
|
- → 公式ドキュメント(The Rust Programming Language)の所有権の章([和訳](https://doc.rust-jp.rs/book-ja/ch04-00-understanding-ownership.html))あたりか、Rustの入門書の該当の章をじっくり読んでみる
|
|
84
84
|
|
|
85
|
-
`Vec`に`
|
|
85
|
+
`Vec`に`iter_mut`があることを知らなかった
|
|
86
86
|
|
|
87
87
|
- → `Vec`の [リファレンス](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.iter_mut) に何か使えそうなメソッドがないか眺める
|
|
88
88
|
- → `iter`のモジュールレベルのドキュメントを読んでみる。( [参照をイテレートする方法](https://doc.rust-lang.org/stable/std/iter/index.html#iterating-by-reference) なども書かれており、そこで`iter_mut`が出てくる)
|