Skip to content

变量与解构

字符串使用双引号 "" 而不是单引号 '',Rust 中单引号是留给单个字符类型(char)使用的 Rust 使用 {} 来作为格式化输出占位符,其它语言可能使用的是 %s,%d,%p 等,由于 println! 会自动推导出具体的类型,因此无需手动指定

变量

rust

let x = 5;//不可变

let mut x = 5;//可变

常量

rust
const MAX_POINTS: u32 = 100_000;

使用下划线开头忽略未使用的变量,变量可以覆盖;

解构

rust
let (a, mut b): (bool,bool) = (true, false);

解构赋值

rust
struct Struct {
    e: i32
}

fn main() {
    let (a, b, c, d, e);

    (a, b) = (1, 2);
    // _ 代表匹配一个值,但是我们不关心具体的值是什么,因此没有使用一个变量名而是使用了 _
    [c, .., d, _] = [1, 2, 3, 4, 5];
    Struct { e, .. } = Struct { e: 5 };

    assert_eq!([1, 2, 1, 4, 5], [a, b, c, d, e]);
}

注释

rust
// 这是第一种注释方式

/* 这是第二种注释方式 */

/*
 * 多行注释
 * 多行注释
 * 多行注释
 */

猜数字小游戏

rust
use rand::Rng;
use std::io;
fn main() {
   let mut rng = rand::thread_rng();
   let secret_number = rng.gen_range(1..=100).to_string();
   // 输入的字符
   let mut guess = String::new();

   println!("生成的随机数为: {}", secret_number);
   // 生成标题
   println!("请输入内容:");

   io::stdin()
    .read_line(&mut guess)
    .expect("获取数字失败了");

   let guess = guess.trim();
   if guess == &secret_number {
       println!("猜对了: {}, {}", guess, secret_number);
   } else {
       println!("猜错了: {}", guess);
   }
}