rust所有权,一个关于“一致性”的小点

发布时间 2023-04-09 22:16:29作者: xiaotushaoxia

我感觉编程世界里有个东西很舒服,我也不知道该怎么称呼它,姑且叫它“一致性”吧

最近在浅浅了解rust。发现里面有一个小点很好的符合了这个一致性。


第一个图讲的是基本类型在赋值的时候默认就是拷贝的
第二个图讲的是用一个结构体变量初始化另一个结构体变量的时候,如果字段是基本类型,那么那些字段就是拷贝的。和第一个图中一致。

不过我感觉,可能改成 “一个结构体的字段都是基本类型的时候,赋值的时候默认就是拷贝的”,可能会更“一致”一点。 当然rust设计者肯定是有自己的考虑, 我想的可能逻辑是有问题的。

struct Point {
    x:i32,
    y:i32,
}

fn main() {
    let a = Point{x:10, y:10};
    let b=Point{..a};
    let c = a;
    println!("{}", a.x);  // error value borrowed here after move
}