fn save() -> Result<(), String> {
Err("disk full".to_string())
}
fn main() {
save();
println!("done");
}Bu kod
cargo run ile derlenip çalıştırıldığında ne olur?- aDerleme durur:
save()'in döndürdüğüResultya match edilmeli ya da?ile yayılmalıdır - bDerlenir, çünkü kullanılmayan
Resultyalnızca uyarıdır, sonradonebasar✓ - cTemiz derlenir ve çalışma zamanında
disk fullmesajıyla panic eder - dTemiz derlenir ve
donebasar; Rust'ta birResult'ı yok saymak sessizdir
Açıklama:
Result #[must_use] ile işaretlidir; incelemeden düşürülünce unused Result that must be used uyarısı çıkar. Uyarı hata değildir: binary derlenir, save() çalışır, Err değeri atılır ve done basılır. Panic olmaz, çünkü bir Err değeri ancak üzerinde unwrap/expect çağrılırsa panic eder.