1. Rust安装
从Rust官网下载安装包,然后安装到windows上,安装选项选 1
// 更新rust
rustup update
// 卸载rust
rustup self uninstall
// 查看rust版本,显示版本号、commit hash、commit日期
rustc --version
// 打开文档
rustup doc
2. 开发工具
开发工具为VS Code + Rust插件
3. hello world
新建一个文件夹,在vscode打开,新建一个main.rs的文件,输入以下代码
fn main(){ // 定义了一个无返回无参数的函数,main函数是入口
// rust的缩进是4个空格
println!("hello world"); // println!是一个宏,如果是函数的话没有!,“hello world”是他的参数
}
然后就通过 rustc main.rs
进行编译,我编译的时候报错了
报error: linker link.exe not found
,可以参考RUST error: linker link.exe not found (jaacostan.com)
编译之后会生成一个exe文件和一个pdb文件,运行main.exe会打印hello world
但rustc只适合简单rust程序!
4. Cargo
Cargo是Rust的构建系统和包管理工具,包括构建代码、下载依赖,构建库
- 首先我们通过
cargo --version
检查一下cargo - 通过cargo创建一个项目
cargo new hello_cargo
- 通过vscode打开,可以看到如下目录
src文件夹存放源代码
Cargo.toml解析
[package] # 包基本信息 name = "hello_cargo" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # 依赖
cargo的相关操作
cargo build // 构建 cargo build --release // 构建发布版本 cargo run // 构建并运行 cargo check // 代码检查
5. 老规矩:猜数字
// 就从命令行读一个数给可变变量guess,然后打印出来
use std::io;
fn main() {
println!("猜数字");
println!("请猜一个数字");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("读取错误");
println!("你猜的是:{}", guess);
}
来个看起来难点的,生成随机数:
# 先导入rand库
[dependencies]
rand = "0.8.4"
use rand::Rng;
fn main() {
println!("猜数字");
println!("请猜一个数字");
let secret_number = rand::thread_rng().gen_range(1..10); //生成随机数[1:10)
println!("你猜的是:{}", secret_number);
}
再来随机数跟我输入的数字进行比较:
use std::io;
use rand::Rng;
use std::cmp::Ordering;
fn main() {
println!("猜数字");
println!("请猜一个数字");
let secret_number = rand::thread_rng().gen_range(1..10);
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("读取错误");
println!("你猜的是:{}", guess);
let guess:u32 = guess.trim().parse().expect("请输入数字");
match guess.cmp(&secret_number){
Ordering::Less => println!("too small"),
Ordering::Equal => println!("equal"),
Ordering::Greater => println!("too much"),
}
}
再来,循环猜数字:
use std::io;
use rand::Rng;
use std::cmp::Ordering;
fn main() {
println!("猜数字");
println!("请猜一个数字");
let secret_number = rand::thread_rng().gen_range(1..100);
let mut guess = String::new();
loop{
guess.clear();
io::stdin().read_line(&mut guess).expect("读取错误");
println!("你猜的是:{}", guess);
let guess:u32 = match guess.trim().parse(){
Ok(num) => num,
Err(_) => continue,
};
match guess.cmp(&secret_number){
Ordering::Less => println!("too small"),
Ordering::Equal => {
println!("equal");
break;
},
Ordering::Greater => println!("too much"),
}
}
}
教程来自b站up主软件工艺师
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。