我有这两条代码:
fn main() {
let mut x: int = 5;
x = 6;
println!("value {}", x);
}
使用此代码,编译器将发出警告:
该值永远不会被读取
let x: int = 5
但是使用以下代码,编译器不会。
struct Point {
x: int,
y: int,
}
fn main() {
let mut p = Point {x: 1i, y: 2i};
p.x = 5;
println!("value {}, {}", p.x, p.y);
}
为什么会这样?我们从不读取 时的值x = 1i
。相反,我们读取 处的值x = 5i
。那么为什么编译器不像之前的代码那样发出警告呢?