2024-01-27
Rust
0
请注意,本文编写于 516 天前,最后修改于 485 天前,其中某些信息可能已经过时。

目录

Learn Rust
安装Rust
猜数字游戏
变量
引用
Result
match 语句

image.png

Learn Rust

安装Rust

安装 - Rust 程序设计语言 简体中文版

猜数字游戏

rust
use std::{cmp::Ordering, io}; use rand::Rng; fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1..=100); // println!("The secret number is: {secret_number}"); loop { println!("Please input your guess."); // rust中,变量默认是不可变的 // 变量可变:mut // let apples = 5; // 不可变 // let mut bananas = 5; // 可变 let mut guess = String::new(); io::stdin() .read_line(&mut guess) .expect("Failed to read line"); // read_line 的工作是,无论用户在标准输入中键入什么内容,都将其追加(不会覆盖其原有内容)到一个字符串中,返回一个类型为 Result 的值 // Result 是一种枚举类型,通常也写作 enum。 // Result 的成员是 Ok 和 Err,Ok 成员表示操作成功,内部包含成功时产生的值。Err 成员则意味着操作失败,并且包含失败的前因后果。 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; } } } }

变量

变量默认不可变(?but为什么叫变量),若需要该变量可变,需要加上 mut

Rust 允许用一个新值来 隐藏Shadowingguess 之前的值。这个功能常用在需要转换值类型之类的场景。它允许我们复用 guess 变量的名字,而不是被迫创建两个不同变量,诸如 guess_strguess 之类。

引用

& 表示这个参数是一个 引用(reference),它允许多处代码访问同一处数据,而无需在内存中多次拷贝。引用是一个复杂的特性,Rust 的一个主要优势就是安全而简单的操纵引用。完成当前程序并不需要了解如此多细节。现在,我们只需知道它像变量一样,默认是不可变的。因此,需要写成 &mut guess 来使其可变,而不是 &guess

Result

Result 的成员是 OkErrOk 成员表示操作成功,内部包含成功时产生的值。Err 成员则意味着操作失败,并且包含失败的前因后果。

Result 是一种枚举类型,通常也写作 enum。枚举类型变量的值可以是多种可能状态中的一个。我们把每种可能的状态称为一种 枚举成员(variant)

match 语句

一个 match 表达式由 分支(arms) 构成。一个分支包含一个 模式pattern)和表达式开头的值与分支模式相匹配时应该执行的代码。Rust 获取提供给 match 的值并挨个检查每个分支的模式。match 结构和模式是 Rust 中强大的功能,它体现了代码可能遇到的多种情形,并帮助你确保没有遗漏处理。

类似于 switch 语句。

本文作者:Morales

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 License 许可协议。转载请注明出处!