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的构建系统和包管理工具,包括构建代码、下载依赖,构建库

  1. 首先我们通过cargo --version检查一下cargo
  2. 通过cargo创建一个项目
    cargo new hello_cargo
  3. 通过vscode打开,可以看到如下目录
    src文件夹存放源代码
    Pasted image 20220419204206.png
  4. 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] # 依赖
    
  5. 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主软件工艺师


傻傻的竹笋
1 声望0 粉丝

引用和评论

0 条评论