Rust 里的 Pin 是在钉什么?

Description
讲讲 Rust 里比较冷门(?)的特性:Pin
需要说明一下,视频里的例子仅供理解 Pin 的目的,平时并不需要这么写(

如果喜欢我的视频,欢迎点赞收藏和关注喵,谢谢喵~

Comments

古弓手 2024-07-06

pin住等于无法直接取&mut T,因为他是一个结构体,这样比如一些不安全的操作,mem::swap就无法对pin住的东西移动(编译器报错),然后对于pin<&mut T>来说由于pin还有&mut 都实现了deref 这样就无法取到T的数据(为什么,以后做视频),特别是在异步的时候实现future的时候,要展开成状态机,分配给线程来完全任务,需要大量移动,自引用的时候涉及到一些mem::swap,这个在标准库中很常见,比如说option的操作,所以用个这个保证安全。

♥ 44 ↩ 1

_旧时代_ 2024-07-06

Pin唯一的作用是阻止你获得&mut T

♥ 19 ↩ 1

coaco92 2025-06-30

这个是所有权后遗症,作用是让编译器帮忙看着,这东西一移动就乱套了,如果不帮你看着,运行时出错你得费半天劲

♥ 9 ↩ 2

锦澄c 2024-07-17

讲的思路特别清晰,视频制作非常精良。必须多多支持和你们这些优质博主,可以更有动力创作

♥ 6

Ch1ppy 2024-07-05

up加油,音乐有点大

♥ 5 ↩ 3

单夜楼DawnYlw 2026-01-08

Box直Pin

♥ 2

Louis翔 2024-07-14

放两篇关于避免Pin的讨论文章 https://blog.yoshuawuyts.com/self-referential-types/ https://blog.yoshuawuyts.com/self-referential-types-2/

♥ 1

XiaoMouz 2024-07-12

UP主加油!看好你噢~

♥ 1

NYSSC 2024-07-07

为啥tmp_buf出了自己词法作用域地址还能被引用?borrow checker又更新了?[哦呼]

♥ 1 ↩ 9

来点牛 2024-07-06

cpp 很少见到 pin 是因为可以自己定义 move 行为吗,cpp 的 coroutine 也不需要 pin 是因为编译器直接把协程函数的变量扔堆上去了吗

♥ 1 ↩ 3

SCU_永恒 2026-07-04

758522192 欢迎加群一起学习rust(备注加edt) rust嵌入式专用群:947963288(备注哪个视频找到的:vid)

渴望成为技术流玩家 2026-02-18

Zed的字体和主题是什么呀,好好看,已三连

nekomeowneko 2025-10-03

zed这种封闭编辑器非常坏

ray-_-w 2025-07-09

视频质量很高

A还要昵称啊 2024-10-20

UP主加油!看好你噢~

Shapooo 2024-07-25

讲得很清楚

东云博士喵owo 2024-07-24

UP主加油!看好你噢~

讯飞星火 2024-07-23

UP主加油!看好你噢~

无限黄昏EndlessDusk 2024-07-15

UP主加油!看好你噢~

BreakOrContinue 2024-07-14

bgm是什么()