本入门系列教程将不会按照常规的方式进行,本教程主要以代码入手,先敲代码,再讲知识点。所谓,先“知其然”,再“知其所以然”,欢迎共同探讨,多多指正。
下面先以两个简单的程序对Rust语言有一个初步的体验。
Code 1. Hello World
fn main(){
println!("Hello, world!");
}
运行输出:Hello, world!
和C++类似,程序的入口需要一个主函数fn main,且语句结束后需要一个分号
Code 2. 猜数字游戏
这是Rust官方教程中的一个程序。
程序的目的是猜数字,如果猜的不对会提示大了还是小了,如果猜对了,则游戏胜利,下面是一个初步实现
extern crate rand; //导入rand包用于生成随机数
use std::io;
use rand::Rng;
use std::cmp::Ordering;
fn main() {
println!("Guess the number!");
let secret_num = rand::thread_rng().gen_range(1, 101); //生成随机的secret_number
println!("Please input your guess.");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("failed to read the line!");
let guess : u32 = guess.trim().parse().expect("please input a number!"); //将输入数据类型从String转换成u32
//匹配数据
match guess.cmp(&secret_num) {
Ordering::Less => println!("too small!"),
Ordering::Greater => println!("too big!"),
Ordering::Equal => println!("You Win!"),
}
}
上面的程序初步实现了猜数字游戏的功能,首先需要生成一个供我们猜测的随机数,生成随机数需要用到外部包rand,这时需要在文件Cargo.toml中的dependencies部分添加rand
此时编译后,cargo就会自动帮我们下载并编译包依赖。
我们需要一个变量所为我们的输入,跟c++一样,需要标准io:std::io。大家可以注意到有一个mut关键字,mut表示变量,至于为什么需要mut,我们下期将数据类型时将会讲到。
然后就需要将输入的String类型的数据转换成u32,这样才能够进行比较,不同类型之间不能进行比较,类型安全。
通过标准库中的std::cmp::Ordering进行比较
这样我们的程序就能够进行一次猜数字游戏了
显然我们并不是轻言放弃的人,不猜对显然是不会睡觉的!
那么我们就需要引入循环,来反复试错
//猜数字程序
//2019.10.23
extern crate rand;
use std::io;
use rand::Rng;
use std::cmp::Ordering;
fn main() {
println!("Guess the Number!");
let secret_num = rand::thread_rng().gen_range(1, 101); //生成随机的secret_number
loop{
println!("Please input ur guess!");
let mut guess = String::new(); //mut变量
io::stdin().read_line(&mut guess).expect("failed to read the line!");
let guess:u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};
println!("ur guess : {}", guess);
match guess.cmp(&secret_num) {
Ordering::Less => println!("too small!"),
Ordering::Greater => println!("too big!"),
Ordering::Equal => {
println!("You Win!");
break;
}
}
}
}
上面程序相信大家能够很轻松的意会,loop就是一个死循环,当猜对的时候,break跳出循环,游戏结束。
下面我就来玩一下我们用Rust编写出的第一个游戏吧!
我很顺利就完成游戏啦!非常滴牛逼!
环,游戏结束。
下面我就来玩一下我们用Rust编写出的第一个游戏吧!
我很顺利就完成游戏啦!非常滴牛逼!
下期我们将会开始介绍Rust的数据类型,敬请期待!