猜数游戏Rust版
//引用io库 类似c#的using use std::cmp::Ordering; use std::io; use rand::Rng; fn main() { println!("这是一个猜数游戏"); println!("请输入一个数字"); loop { //mut 为mutable可变,没有则为不可变 String::new()则为静态方法 let mut guessNum = String::new(); io::stdin() //&是一个引用 //result的分支为成功和失败 .read_line(&mut guessNum) .expect(""); //Rust的随机函数 //包含下限不包含上限 即为101-1 let secret_rand_num: u32 = rand::thread_rng().gen_range(1..101); //调试判断 if cfg!(dubug_assertions){ println!("神秘数字是:{}", &secret_rand_num); } /*else { println!("神秘数字是:{}", "********"); }*/ let true_num = secret_rand_num; //这个字符串模板类似于Python println!("你猜的数字是:{}", guessNum); /* if true_num > guessNum { println!("数字太小"); println!("实际数字是:{}", true_num); } else if true_num == guessNum { println!("恭喜你答对了"); println!("实际数字是:{}", true_num); break; } else { println!("数字太大"); // println!("实际数字是:{}", true_num); } */ let guessNum: u32 = match guessNum.trim().parse() { Ok(num) => num, Err(_) => { eprintln!("你输入的类型或取值范围有误请重新输入:"); continue }, }; //类似Scala的 Match Case 语句 match guessNum.cmp(&true_num) { Ordering::Less => { println!("数字太小"); // println!("实际数字是:{}", true_num); } Ordering::Equal => { println!("恭喜你答对了"); println!("实际数字是:{}", true_num); break; } Ordering::Greater => { println!("数字太大"); // println!("实际数字是:{}", true_num); } } } }