تمرين إعادة البناء
Unit Converter
أعد كتابة محول وحدات صغير للطول والوزن والحرارة.
rust
~13 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 4 {
println!("Usage: convert <value> <from> <to>");
println!("Units: m, km, g, kg, c, f");
return;
}
let value = args[1].parse::<f64>().unwrap_or(0.0);
let from = args[2].as_str();
let to = args[3].as_str();
match convert(value, from, to) {
Some(result) => println!("{value} {from} = {:.2} {to}", result),
None => println!("Unsupported conversion"),
}
}
fn convert(value: f64, from: &str, to: &str) -> Option<f64> {
match (from, to) {
("m", "km") => Some(value / 1000.0),
("km", "m") => Some(value * 1000.0),
("g", "kg") => Some(value / 1000.0),
("kg", "g") => Some(value * 1000.0),
("c", "f") => Some(value * 9.0 / 5.0 + 32.0),
("f", "c") => Some((value - 32.0) * 5.0 / 9.0),
(a, b) if a == b => Some(value),
_ => None,
}
}اكتب هنا