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:?}");
}