用 Rust 编写一个温度转换程序
感想
不得不说,rust 的规矩真是多~~,这不行那不行,可能就只剩下安全了。
代码
use std::io;
fn main() {
println!("Conversion between f and c");
println!("Please enter like this : 3f or 32.5c");
println!("Type Ctrl + C to quit.");
loop {
println!("-------------");
let mut enter = String::new();
io::stdin().read_line(&mut enter).
expect("Faild to read");
let enter = enter.trim();
let len = enter.len() as usize;
// println!("len is {:?}", len);
let number = &enter[0..len-1];
// println!("The number is {:?}", number);
let number = match number.trim().parse() {
Ok(x) => x,
Err(_) => {
println!("Please enter right format!");
continue;
}
};
// println!("number is {:?}", number);
let c = match enter.chars().nth(len-1) {
Some(x) => x,
None => panic!(),
};
// println!("c is {:?}", c);
match c {
'c' => {
// println!("c2f(number) is {}", c2f(number));
let result = c2f(number).to_string() + "f";
println!("The {} is {}", enter, result);
}
'f' => {
let result = f2c(number).to_string() + "c";
println!("The {} is {}", enter, result);
}
_ => {
println!("Please enter right format!");
continue;
}
}
}
}
fn c2f(x:f64) -> f64 {
32.0 + x * 1.8
}
fn f2c(x:f64) -> f64 {
(x - 32.0)/1.8
}