Rust by Example'daki örneklerle çalışıyorum. hareket değerTaşınan bir değerin bir üyesi atandığında derleme neden başarısız olmaz?
kullanımı:
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); }
bu hata (Rust 1.7) elde
point.x
println ("x {}", point.x);!
Şimdi ben Rectangle
nesneye point
verdiğini anlamak ve artık erişebilirsiniz yüzden ancak neden derleme println!
değil önceki satırda üzerinde atama üzerinde başarısız oluyor? Gerçekten ne olur
tartışılmaktadır [Daha küçük bir yeniden üretim] (http://is.gd/j8aovB). – Shepmaster
Sanırım "taşınan bir değer kullanmak", değerini denediğiniz ve okuduğunuz nokta olarak yorumlanabilir. Ona atama, Rust'un garantilerini gerçekten “teknik” bir anlamda değiştirmez, sadece taşınan bir değeri denediğinizde ve tüketirken. Bununla birlikte, bunların çoğunu yeterince iyi anlamadım, bu yüzden daha fazla olan insanlardan haber almakla ilgileniyorum. –
Compiller bugüne benziyor. Daha ilginç olan şey, 'p2 = point; point.x = 0.5; println! ("X is {}", p2.x); 'ince ve baskılar 0.3 derler, bu yüzden point.x = 0.5;' nothng – qthree