难道不是Rust新手先别自己设计树这类数据结构的实现么,标注库里不是有么。
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 标 题: 请教个rust基本问题,Rc<RefCell<T>>有啥坏处?
: 发信站: 水木社区 (Sat Dec 4 00:18:55 2021), 站内
:
: 团队正在迁往rust,有两种关于数据结构风格的意见:
:
: 1. 按照螃蟹书的风格建议,既然使用了rust,就需要先费心根据需求设计好所有权树,尽量少用Rc<RefCell<T>>,多用&和&mut解决问题
:
: 2. 因为业务需求变化不可预测,现在设计的所有权树不一定适应将来的需求,比如一个所有权树的根,将来要变成Rc多个主体拥有,哪个主体先死都不一定,那么现在就尽量多使用Rc<RefCell<T>>,其实就是把rust当作python来用,大部分重要的数据结构变量都进堆,都用Rc保证可以随便传递和复制所有权,都用RefCell来保证随时可borrow_mut,可写。而且不需要费心考虑所有权和引用规则的问题,虽然写起来罗嗦点,但是其实心智负担更轻。
:
: 我的问题是,以上第二种做法,除了可能增加一些运行时的损耗、一些错误被推迟到运行时才能panic之外,还有哪些坏处呢?为什么rust的文档和书籍里不太推荐这种做法呢?
:
: --
:
: ※ 修改:·beep 于 Dec 4 00:20:34 2021 修改本文·[FROM: 123.120.160.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 123.120.160.*]
--
修改:beep FROM 123.120.160.*
FROM 114.241.12.221