在本章中,我们将探讨 Rust 中的控制流概念。控制流是编程语言中用于决定代码执行顺序的关键特性。通过使用条件语句、循环和其他控制结构,我们可以创建更灵活和功能丰富的程序。
条件语句
条件语句允许我们根据特定条件的真假来执行不同的代码块。在 Rust 中,条件语句主要通过 if
表达式实现。
基础 if 表达式
if
表达式是最基本的条件语句形式,其基本语法如下:
let number = 3; if number < 5 { println!("条件为真"); } else { println!("条件为假"); }
注意,if
表达式的分支必须返回相同类型的值。如果分支的类型不同,编译器会报错。
if let 语句
if let
语句提供了一种更简洁的方式来处理模式匹配的情况。它类似于 if
表达式,但专用于模式匹配。
let some_value = Some(5); if let Some(x) = some_value { println!("some_value 的值为 {}", x); }
match 表达式
match
表达式是 Rust 中非常强大且灵活的控制流工具,用于模式匹配。它可以用来匹配各种类型的值,包括枚举。
匹配简单值
let number = 6; match number { 1 => println!("数字为 1"), 2 | 3 | 4 | 5 => println!("数字在 2 到 5 之间"), 6..=9 => println!("数字在 6 到 9 之间"), _ => println!("其他数字"), }
匹配枚举
假设我们有一个简单的枚举类型:
-- -------------------- ---- ------- ---- ------- - ----- ---- - -- ---- -- --- -- -------------- ---------------- ---- ----- - -- -------------------- -------- - ----- --- - ------------- -- ----------------- ------------- - -- - - -- ------------- ---- ----- -- --- -------------------- -- ------------------- ------ ----------------------- -- -- -- --------------- ------- --- ----- -- -- --- - -
循环
循环允许我们重复执行一段代码直到满足特定条件。Rust 提供了几种循环结构,包括 loop
、while
和 for
循环。
loop 循环
loop
循环是一种无限循环,除非使用 break
关键字来终止循环。
-- -------------------- ---- ------- --- --- ----- - -- ---- - ----- -- -- ------------------ ------- -- ----- -- - - ------ - -
while 循环
while
循环在每次迭代时检查条件是否成立。如果条件为真,则执行循环体内的代码。
let mut number = 3; while number != 0 { println!("{}", number); number -= 1; } println!("发射!");
for 循环
for
循环用于遍历集合中的每个元素。这是遍历数组或向量等数据结构的常用方式。
let a = [10, 20, 30, 40, 50]; for element in a.iter() { println!("当前元素:{}", element); }
断言与调试
在开发过程中,我们经常需要验证某些条件是否满足。Rust 提供了 assert!
宏来帮助我们进行断言。
-- -------------------- ---- ------- -- ------ - --- --------- - ----- --- ------ - -- --------- - - - ---- - - -- ------------------ -- ------- ---- ------- ---- -------- -
assert_eq!
和 assert_ne!
宏分别用于断言两个值相等或不相等。
小结
通过学习本章的内容,您应该已经掌握了 Rust 中的基本控制流机制,包括条件语句和循环。这些知识将帮助您编写出更加灵活和功能强大的程序。下一章我们将继续深入探讨 Rust 的其他重要概念。