范围指南
本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 65 课,共 75 课。
在本课中,我们将进一步了解 range 的工作原理。
范围的基本语法:
start..end:创建从 start 到 end 的范围(不包含 end)start..=end:创建从 start 到 end 的范围(包含 end)
..end- 创建一个没有起始值、到 end 为止(不包含 end)的范围。for循环不能使用它,但可以用它从索引 0 开始截取数组:&arr[..3]表示前 3 个元素..=end- 创建一个没有起始值、到 end 为止(包含 end)的范围,用法相同:&arr[..=3]表示前 4 个元素
start..:创建一个从 start 到正无穷的区间..:创建一个从负无穷到正无穷的区间
使用 .rev() 反向遍历范围:
(0..5).rev()- 4, 3, 2, 1, 0(0..=5).rev()- 5, 4, 3, 2, 1, 0
使用 .step_by(n) 进行步进跳跃:
(0..10).step_by(2)- 0, 2, 4, 6, 8(0..10).rev().step_by(2)- 9, 7, 5, 3, 1
例如:
// 基本的递增范围
for i in 0..5 { }
// 值:0、1、2、3、4// 包含两端点的范围
for i in 0..=5 { }
// 值:0, 1, 2, 3, 4, 5// 反向遍历范围
for i in (0..5).rev() { }
// 值:4,3,2,1,0// 每次步进 2
for i in (0..10).step_by(2) { }
// 值:0、2、4、6、8// 结合反向遍历和步进
for i in (0..10).rev().step_by(3) { }
// 值:9, 6, 3, 0挑战
简单给你两个数组,numbers1 和 numbers2。每个数组各打印一行:
- 数组 1:从
numbers1的最后一个位置开始,每次向前移动 3 个位置(索引为 25、22、19……),并打印每个位置上的值。 - 数组 2:从最后一个元素到第一个元素遍历
numbers2,只打印能被 4 整除的值。
将每个值放在方括号中,值与值之间用 , 分隔,最后一个值后面不加任何内容:
Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...亲手试试
fn main() {
let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
print!("Array 1: ");
// 在这里编写你的代码
println!();
print!("Array 2: ");
// 在这里编写你的代码
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Rust 在线编译器