PTLin 最近的时间轴更新
PTLin

PTLin

V2EX 第 271968 号会员,加入于 2017-12-03 11:14:57 +08:00
今日活跃度排名 12458
PTLin 最近回复了
2 天前
回复了 JinTianYi456 创建的主题 Windows 这个文件夹里没有文件?
在文件夹下运行 attrib /s /d -s -h,把-换成+就是隐藏
6 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
@giiiiiithub 你标题的问题就是 Drop check 的问题,你 18 楼的问题是更复杂的生命周期协变 逆变的问题
https://doc.rust-lang.org/nomicon/subtyping.html
https://rustcc.cn/article?id=38000317-0d25-40b1-aee9-81143322bec4

另外,你标题代码没有 use ,我没以为是 mpmc 。
6 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
附带一提,你这个例子里是 Sender 中的 SenderFlavor 实现了 Drop ,所以你在文档里看不到 Sender 实现了 Drop ,并且假如这个类型没实现 Drop ,就不会触发 Drop check ,你这个代码也就没问题。
6 天前
回复了 giiiiiithub 创建的主题 Rust rust 生命周期错误
你这个其实不算生命周期问题,是 drop check 的问题。主要就是保证值析构时,析构函数不会访问到悬垂引用。

Sender 里 send 的行为可能是这样:send 时把值存在了内部某个地方,drop 的时候可能对这个值进行了某些操作,这种情况下这个值必然不能先于 Sender 被 drop ,所以调下 drop 顺序就能解决。

你这个 case 里 drop 另一个影响是,你在 send 后尝试对字符串进行 push 这种借出可变引用的行为也会报错,无论你是否调换了顺序。

可以看看这两个: https://doc.rust-lang.org/nomicon/dropck.html
https://ng6qpa7sht.feishu.cn/docx/LGnVdlqwGoIUpuxUMWRcptEbndd
10 天前
回复了 u123 创建的主题 Rust 所以 rust 开发对 web 仔来说
crud 崽直接上框架 https://loco.rs/
https://folyd.com/blog/rust-pin-unpin/ 这个文章写的很好。

简单来说就是自引用结构(结构中的一个成员是一个指针,指向另一个成员的地址),倘若对两个这样类型的结构进行 swap 操作,就会让构造出来的自引用性质失效(本身是指向当前结构的自引用指针指向了错误的位置)。

对于 Pin 智能指针包装的类型,倘若我们让这个类型实现!Unpin ,就说明这个类型是*pin 在内存中*的,从而在 Pin 智能指针的使用中无法 safe 的得到这个类型的可变引用,从而解决自引用的问题。

引入的动机是 Future ,async 代码会在某些条件下生成自引用的结构,所以 Future 的 poll 的参数是 Pin<&mut Self>
12 天前
回复了 momo2023 创建的主题 电影 看完《热辣滚烫》后你有什么感触呢?
@loading 这部电影如果这么拍,导演会被电影协会轮番枪毙
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   952 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 20:27 · PVG 04:27 · LAX 12:27 · JFK 15:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.