我感觉编程世界里有个东西很舒服,我也不知道该怎么称呼它,姑且叫它“一致性”吧
最近在浅浅了解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
}