Rust指针选择

Rust指针选择:

1.优先使用引用:安全访问数据

rust 复制代码
fn process(data: &[i32]) { /* ... */ }

2.需要所有权转移时用 Box

rust 复制代码
fn create() -> Box<Data> { Box::new(Data::new()) }

3.共享数据用 Rc/Arc

rust 复制代码
// 单线程
let shared = Rc::new(data);

// 多线程
let thread_safe = Arc::new(Mutex::new(data));

4.内部可变性用 RefCell

rust 复制代码
let cell = RefCell::new(42);
*cell.borrow_mut() = 100;

5.底层操作/FFI 用裸指针

rust 复制代码
extern "C" {
    fn c_function(ptr: *const libc::c_char);
}

注:学好rust从入门到入土!!!

相关推荐
淡海水6 分钟前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero44 分钟前
C语言sizeof是函数吗?
c语言·开发语言
东风破_1 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
-今昭-2 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
行百里er2 小时前
Gateway 上别硬塞 MVC:DeferredImportSelector 看菜下锅
spring boot·后端·开源
名字还没想好☜3 小时前
Java 遍历时删元素抛 ConcurrentModificationException:fail-fast 原理与三种正确删法
后端
IT_陈寒3 小时前
React Hooks闭包陷阱差点让我加班到凌晨
前端·人工智能·后端
黑马程序员毕设3 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
码事漫谈4 小时前
本体论,彻底懂
后端
_Twink1e4 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen