小编ZyS*_*ZyS的帖子

为什么重新启动后移动的变量的语义不是移动?

最小的例子是这样的(Playground):

#[derive(Debug)]
struct Node {
    id: usize,
}

fn main() {
    let mut node = Node { id: 0 };
    let mut lastnode = &mut node;
    let mut last = lastnode; // move
    (*last).id = 1;
    println!("{:?}", last);
    //println!("{:?}", lastnode);

    let mut node2 = Node { id: 2 };
    lastnode = &mut node2;
    last = lastnode; // doesn't move to "last"
    println!("{:p}", last); // "last" and "lastnode" point to the same address
    println!("{:p}", lastnode);
}
Run Code Online (Sandbox Code Playgroud)

为什么第一个会last = …

ownership rust

7
推荐指数
1
解决办法
115
查看次数

标签 统计

ownership ×1

rust ×1