乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Rust 07.03 智能指针RefCell
2023-02-05 10:10:59
37
0
0
admin
> 允许一个内存地址有多个可变指针,事实上只是把编译时的检查推迟到了运行时检查 **RC 与 RefCell 一起使用:** ``` use std::rc::Rc; use std::cell::RefCell; pub struct TheData { pub n: i32 } impl TheData { pub fn new() -> TheData { TheData { n: 0 } } pub fn p(&self) { println!("{}",self.n); } pub fn add_1(&mut self) { self.n = self.n + 1; } } pub struct OneObj { pub share_data: Rc<RefCell<TheData>>, } fn main() { let d = TheData::new(); let d_point = Rc::new(RefCell::new(d)); let obj_1 = OneObj { share_data: Rc::clone(&d_point), }; let obj_2 = OneObj { share_data: Rc::clone(&d_point), }; obj_1.share_data.borrow_mut().p(); obj_2.share_data.borrow_mut().p(); obj_1.share_data.borrow_mut().add_1(); obj_1.share_data.borrow_mut().p(); obj_2.share_data.borrow_mut().p(); } ```
上一篇:
Rust 07.02 智能指针Rc
下一篇:
Rust 08.00 多线程
文档导航