fn main() {
let s = String::from("hi");
let t = s;
println!("{} {}", s, t);
}Derleyici ne raporlar?
- a
hi hibasar;let t = sbaytlarıt'ye kopyalar - bHata E0499:
svetaynı heap tamponunun iki mutable sahibidir - cHata E0382:
s,t'ye taşındı ve sonrasında kullanılıyor✓ - dDerlenir,
hi'yi bir kez basar; atamadan sonrasboşalır
Açıklama:
String bir heap tamponuna sahiptir ve Copy değildir; let t = s sahipliği t'ye taşır. Derleyici sonraki s okumasını E0382 (borrow of moved value) ile reddeder. Hiçbir şey kopyalanmaz, s boşalmaz; sadece artık kullanılamaz.