Я работаю над примерами в Rust by Example.
fn main() {
let mut point: Point = Point { x: 0.3, y: 0.4 };
println!("point coordinates: ({}, {})", point.x, point.y);
let rectangle = Rectangle {
p1: Point { x: 1.0, y: 1.0 },
p2: point,
};
point.x = 0.5; // Why does the compiler not break here?
println!(" x is {}", point.x); // breaks here
println!("rectangle is {:?} ", rectangle);
}
Я получаю эту ошибку (Rust 1.7):
использование перемещенного значения:
point.x
println! ( "x is {}", point.x);
Теперь я понимаю, что я дал point
объекту Rectangle
, и именно поэтому я больше не могу его получить, но , почему компиляция завершилась неудачей в println!
, а не назначением предыдущей линия