Lobsters | 原文链接 | 2026-09-30 收录 · 热度 5

在 Rust 里为 Arc 实现向下转型:一次自制的自引用指针

来源: wolfgirl.dev — 2026-09-29

概述

作者在写构建驱动时遇到一个并发缓存问题:用 Arc 缓存值可以避免昂贵的克隆,但拿到 Arc 之后,没办法像 &JSON 那样直接模式匹配出内部的 Arc。他真正想要的返回类型是「既拥有值、又能当作借用」,于是借助 Pin 固定地址,再配上一个同时持有值和原始指针的包装类型,手工做出了 Arc 的向下转型。

核心要点

金句

生命周期存在的意义正是为了阻止这类 bug,我们那套把引用延长成 'static 的小把戏被戳穿了。
← 返回 Lobsters 首页