最近在研究 1904 年日期系統,想說寫一個簡單的 Rust 程式來測試一下想法。主要的轉換函式寫完後,希望把程式寫成簡單的互動式程式,方便測試。
參考網路上的文章,結果如下:
// 先不用管 y1904 的細節,在這個範例中不重要。
mod y1904;
// 使用 std::io::Write 是為了 flush()
use std::io::{stdin, stdout, Write};
use y1904::*;
fn main() {
loop {
// 記得轉成 lowercase,比較好處理
match prompt_for_input("> ").to_ascii_lowercase().as_str() {
"exit" => break,
s @ _ => match s.parse::<u64>() {
Ok(num) => println!("{:?}", num_to_date(num)),
_ => continue,
},
}
}
}
fn prompt_for_input(prompt: &str) -> String {
print!("{}", prompt);
// 如果沒有呼叫 flush() 的話,在使用者輸入之前,上一行可能不會印出來
stdout().flush().unwrap();
let mut result = String::new();
stdin().read_line(&mut result).unwrap();
// 使用 trim() 去掉換行符號。
// trim() 回傳的是 &str,因此要再轉成 String 回傳
result.trim().to_string()
}
至於 y1904
的內容.... 之後再說好了。 XDD