1、值默认分配到栈内存,通过Box装箱,在堆内存中分配
2、Box是向类型为T的堆内存分配值的智能指针。
3、Box超过作用域,将调用其析构函数 ,删除 其内部 对象 ,自动 释放堆中的内存。
4、可通过 解引用符获取Box中的
5、Box行为像引用,可自动释放。
fn main() {
struct BookInfo{
name:&'static str,
price:f32,
count:i32,
}
impl BookInfo{
fn print_book_info(&self){
println!("{}:{} {}",self.name,self.count,self.price);
}
}
let book1=Box::new(BookInfo{name:"C++模式",price:39.12,count:7});
let unboxed_book:BookInfo=*book1;
unboxed_book.print_book_info();
}
Finished dev [unoptimized + debuginfo] target(s) in 0.05s
Running `F:\learn\rustlearn\learn50\target\debug\learn50.exe`
C++模式:7 39.12
------------------
(program exited with code: 0)
请按任意键继续. . .