RUST编程

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

2020-02-06  本文已影响0人  令狐壹冲

视频地址

头条地址:https://www.ixigua.com/i6775861706447913485
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!");
}
上一篇下一篇

猜你喜欢

热点阅读