Rust 编程视频教程(进阶)——010_2Box 使用实例

视频地址

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

讲解内容

box使用的第一种场景,实例。
(1)错误程序:

enum List {
    Cons(i32, List), //链表,类似于c语言的结构体定义:
                            //struct List{
                            //int,
                            //struct List L;//当然是错误写法,c编译器此时不知道L有多大,正确写法应该是:Struct List *p;
                            //}
    Nil,
}

fn main() {
    use List::Cons;
    let list = Cons(1, Cons(2, Cons(3, Nil))); //要报错,因为编译器不知道给list分配多大的内存,类似于上面c语言那个错误写法
    println!("Hello, world!");
}

(2)正确的方式使用Box

enum List {
    Cons(i32, Box<List>), //用Box就把它变成了一个指针,类似于c语言的结构体定义:
                                        //struct List{
                                        //int,
                                        //struct List *p;
                                        //}
    Nil,
}

fn main() {
    use List::Cons;
    let list = Cons(1,
    Box::new(Cons(2,
        Box::new(Cons(3,
            Box::new(Nil))))));
    println!("Hello, world!");
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
令狐一冲
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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