Japanese Correction

This commit is contained in:
asami
2022-05-17 21:05:54 +09:00
parent c34db52262
commit 1a750f5374

View File

@@ -701,7 +701,7 @@ unsafe {
fn poll(self: Pin<&mut Self>, cx: &mut Context) -> Poll<Self::Output>
```
このメソッドが通常の`&mut self`ではなく`self: Pin<&mut Self>`を取る理由は、[上][self-ref-async-await]で見たように、async/awaitから生成されるfutureのインスタンスはしばしば自己参照しているためです。`Self``Pin` にラップして、async/await から生成された自己参照のfutureに対して、コンパイラに `Unpin`選択させることで、`poll` 呼び出しの間にfutureがメモリ内で移動しないことが保証されます。これにより、すべての内部参照が有効であることが保証されます。
このメソッドが通常の`&mut self`ではなく`self: Pin<&mut Self>`を取る理由は、[上][self-ref-async-await]で見たように、async/awaitから生成されるfutureのインスタンスはしばしば自己参照しているためです。`Self``Pin` にラップして、async/await から生成された自己参照のfutureに対して、コンパイラに `Unpin`オプトアウトさせることで、`poll` 呼び出しの間にfutureがメモリ内で移動しないことが保証されます。これにより、すべての内部参照が有効であることが保証されます。
[self-ref-async-await]: @/edition-2/posts/12-async-await/index.md#self-referential-structs