跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Rust 的智能指针太反人类的!
未分類
27 6 月 2020

Rust 的智能指针太反人类的!

Rust 的智能指针太反人类的!

資深大佬 : xiaopanzi 9

吐个槽:这是第 3 次学习 Rust 。之前都是到了智能指针那里停住了,这次又是遇到智能指针有点晕乎乎的。是它设计得太反人类,还是我太蠢了?

放一段让我今晚缺氧的代码:

pub fn peek_front(&self) -> Option<Ref<T>> {     self.head.as_ref().map(|node| {         Ref::map(node.borrow(), |node| &node.elem)     }) } 

来自Too Many Lists。

大佬有話說 (6)

  • 資深大佬 : lance6716

    rust 写链表还是到处 Copy 算了

  • 資深大佬 : billlee

    n 层嵌套的函数式代码,大概你需要一个有类型提示的 IDE?

  • 主 資深大佬 : xiaopanzi

    @billlee 倒不是类型提示的问题。vscode 里面添加插件后就能显示类似。主要让我难受的地方是,我就想 peek 一下,竟然不能返回&,非得借助 Ref,把人搞晕了。如果从其他语言转过来,完整实现 doube linked list 的话,难度不小。

  • 資深大佬 : lance6716

    @xiaopanzi 这个博客挺有风趣的,而且讲的很详细,感谢分享

  • 資深大佬 : fakeshadow

    RefCell 的安全就是靠这个来保证的。Ref 里包了个引用计数,当 Ref 销毁的时候会通知 RefCell 引用-1 。所以你的引用不能比 Ref 命还长。
    我倒是觉得这类 Rust 教程的问题在于刻意回避 unsafe 的应用,链表这类问题用 unsafe 和裸指针会容易许多。

  • 資深大佬 : sssooonnnggg

    这种情况一般就用 unsafe 直接操作指针了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具