< 返回版块

aaronhe 发表于 2019-02-22 14:26

Tags:借用,作用域

借用的原则是任何借用必须位于比拥有者更小的作用域。那么为什么下面的代码能运行?

fn main() {
    let mut x = 1;
    let y = &mut x;

    *y += 1;
    print!("{}", x)
}

评论区

写评论
HBtsama 2019-02-22 20:49

y的作用域确实小于x 而且x实现了Copy trait,所以对它的使用是不会移动x的 即使没有实现Copy trait,对x的使用也发生在y修改之后,对y没有影响

1 共 1 条评论, 1 页