Rust 编程视频教程(进阶)——010_1Box 介绍

视频地址

头条地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/

讲解内容

1、最简单最直接的智能指针是box,其类型为Box。box允许将值放在堆上而不是栈上,留着栈上的则是指向堆数据的指针。除了数据被存储在堆上外,box没有任何性能损失。

2、box适合用于如下场景:

  • 当有一个在编译时未知大小的类型,而又需要再确切大小的上下文中使用这个类型值的时候;(举例子:在一个list环境下,存放数据,但是每个元素的大小在编译时又不确定)
  • 当有大量数据并希望在确保数据不被拷贝的情况下转移所有权的时候;
  • 当希望拥有一个值并只关心它的类型是否实现了特定trait而不是其具体类型时。

3、使用Box在堆上存储数据:

fn main() {
    let b = Box::new(5); //此时5存储在堆上而不是栈上,b本身存储于栈上
    println!("b = {}", b); //离开作用域时同时清楚堆和栈上的数据
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
令狐一冲
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
255
粉丝
120
喜欢
308
收藏
128
排名:335
访问:2.8 万
私信
所有博文
社区赞助商