rust程序员教程(Rust编程教程进阶)

头条地址:https://www.ixigua.com/i6775861706447913485,今天小编就来聊一聊关于rust程序员教程?接下来我们就一起去研究一下吧!

rust程序员教程(Rust编程教程进阶)

rust程序员教程

视频地址

头条地址:https://www.ixigua.com/i6775861706447913485


讲解内容

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

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

* 当有一个在编译时未知大小的类型,而又需要再确切大小的上下文中使用这个类型值的时候;(举例子:在一个list环境下,存放数据,但是每个元素的大小在编译时又不确定)

* 当有大量数据并希望在确保数据不被拷贝的情况下转移所有权的时候;

* 当希望拥有一个值并只关心它的类型是否实现了特定trait而不是其具体类型时。

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


fn main() {

let b = Box::new(5); //此时5存储在堆上而不是栈上,b本身存储于栈上

println!("b = {}", b); //离开作用域时同时清楚堆和栈上的数据

}

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页