Rust 学习笔记 25:高级特性 (Advanced Features)

Rust 学习笔记 25:高级特性 (Advanced Features) “With great power comes great responsibility.” – Uncle Ben (actually unsafe block) Rust 通常强制执行内存安全规则,但有时我们需要绕过它们(比如操作硬件、与 C 交互)。这时,Unsafe Rust 就派上用场了。 此外,Rust 的 Trait 和类型系统还有很多高级用法,能让你的代码更具表现力。 1. Unsafe Rust unsafe 关键字给我们开启了 5 种超能力: 解引用裸指针 (Raw Pointers)。 调用不安全的函数/方法(包括 FFI)。 访问或修改可变静态变量 (Mutable Static Variables)。 实现不安全 Trait (unsafe trait)。 访问 union 的字段。 裸指针: 1let mut num = 5; 2let r1 = &num as *const i32; 3let r2 = &mut num as *mut i32; 4 5unsafe { 6 println!("r1 is: {}", *r1); 7} 编译器不会检查裸指针是否有效、是否为空、是否遵守所有权规则。你自己要负责。 ...

2026-04-15 · 2 min · 236 words · 老墨