G.TYP.PTR.01 Rc
、 Arc
、 Box
不应相互嵌套使用
【级别】 建议
【描述】
不合理的智能指针嵌套使用容易造成多级指针引用,导致内存访问效率不佳。 建议使用 Rc<T>
和 Arc<T>
来替代 Rc<Box<T>>
和 Arc<Box<T>>
类型。
【反例】
Rust
use std::rc::Rc;
fn main() {
let val = Rc::new(Box::new(0i32)); // 不符合 println!("{val:?}");
}
【正例】
Rust
use std::rc::Rc;
fn main() {
let val = Rc::new(0i32); // 符合 println!("{val:?}");
}