【Rust日报】2023-07-18 Pin- 温故而知新
原文中文,约6300字,阅读约需15分钟。发表于: 。有些事情你总是学了又忘记(或者说你从来就没学过?) 对我来说,其中之一就是在Rust中 Pin/Unpin 。 每次我读到有关固定的解释,我的大脑就像 👍 ,几周后就像 🤔 🤨 。 所以,我写这篇文章是为了强迫我的大脑记住这些知识。我们看看效果如何! Pin Pin 是一种指针,可以看作是 &mut T 和 &T 之间的折中。 Pin<&mut T> 的重点是说: 这个值可以被修改(就像...
这篇文章讲解了在Rust中的Pin/Unpin的概念,Pin是一种指针,用于处理自引用结构,Unpin是一个Trait,标记类型在被固定后可以安全地移动。为了处理自引用结构,需要使用Pin来防止移动。在拥有所有权的Future进行await时,编译器可以处理固定。否则,需要使用pin!或Box::pin来处理固定。大多数结构是Unpin的,但async fn和async {}总是产生!Unpin结构。