美文网首页RUST编程
Rust 编程视频教程(进阶)——010_2Box 使用实例

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

作者: 令狐壹冲 | 来源:发表于2020-02-06 11:15 被阅读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!");
    }
    

    相关文章

      网友评论

        本文标题:Rust 编程视频教程(进阶)——010_2Box 使用实例

        本文链接:https://www.haomeiwen.com/subject/eierxhtx.html