周末了,要学习一点让自己开心的东西。
听说rust语言很年轻,性能超过了C++,还能支持嵌入式编程,作为一名未来要出名的代码工程师,岂能错过?于是上周开始学习这个语言。
跟着书本编写完成了第一个小程序,guess_number,(什么?竟然不是“hello world”??)因为随便生成一个程序,模板就是helloworld,根本不需要写,论输出hello world的速度,rust只需要两个指令,这点挺强的。
先上代码,看看:
use std::io;
use std::cmp::Ordering;
use rand::Rng;
fn main() {
println!("Guess the number!");
let secret_number=rand::thread_rng().gen_range(1,101);
//println!("The secret number is:{}",secret_number);
loop{
println!("Please input your guess");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("Failed to read line");
//let guess:u32 = guess.trim().parse().expect("Please type a number!");
let guess:u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};
println!("You guessed:{}",guess);
match guess.cmp(&secret_number)
{
Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"),
Ordering::Equal => {
println!("You win!");
break;
}
}
}
}
编写这个代码我用的是 dev C++,听说没有专门的编辑器,后续再试一试notepad--这个国产软件编写是什么感觉。
上述代码中的use用法,感觉像是C++和python的结合,省却了头文件的包含,使用的crate十分类似python的package。fn main() 瞬间来了C语言的感觉,只是不知道函数的返回值在哪儿。let 定义一个常量,mut表示可变的。函数的返回值处理用expect或者match来处理,不处理就会warning。同样是match,有的地方写的是分号;,有的地方写的是逗号,目前还不知道为什么。循环采用loop,这是熟悉的arduino的程序结构啊。{}的语句块,还是C语言的,没有选择python的缩进用法,我觉得是对的。
目前就感觉这么多了,怎么运行程序,看官网的教程入门 - Rust 程序设计语言 (rust-lang.org)
晚安,2023-3-10 22:38