mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
Merge pull request #29552 from wxy/20230507.0-⭐️⭐️-Rust-Basics-Series-7-Using-Loops-in-Rust
RP:published/20230507.0 ⭐️⭐️ Rust Basics Series 7 Using Loops in Rust.md
This commit is contained in:
commit
9e621a9568
@ -3,14 +3,16 @@
|
||||
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Cubik65536"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15908-1.html"
|
||||
|
||||
Rust 基础系列 #7: 在 Rust 中使用循环
|
||||
======
|
||||
|
||||
在 Rust 系列的 [上一篇文章][1] 中,我介绍了如何使用 if 和 else 关键字来处理 Rust 程序的控制流。
|
||||
![][0]
|
||||
|
||||
在 Rust 系列的 [上一篇文章][1] 中,我介绍了如何使用 `if` 和 `else` 关键字来处理 Rust 程序的控制流。
|
||||
|
||||
这是处理程序控制流的一种方法。另一种方法是使用循环。因此,让我们在本文中看看循环。
|
||||
|
||||
@ -18,9 +20,9 @@ Rust 基础系列 #7: 在 Rust 中使用循环
|
||||
|
||||
Rust 编程语言有三种不同的循环,基于你想要实现什么以及可用的内容:
|
||||
|
||||
- for
|
||||
- while
|
||||
- loop
|
||||
- `for`
|
||||
- `while`
|
||||
- `loop`
|
||||
|
||||
我假设你对 `for` 和 `while` 已经很熟悉了,但 `loop` 对你来说可能是个新概念。让我们先从熟悉的概念开始。
|
||||
|
||||
@ -38,7 +40,7 @@ for 迭代变量 in 迭代器 {
|
||||
}
|
||||
```
|
||||
|
||||
其中的 `迭代变量` 在大多数其他编程语言教程中通常被称为 `i` ;)
|
||||
其中的 `迭代变量` 在大多数其他编程语言教程中通常被称为 `i` ; )
|
||||
|
||||
`迭代器` 可以是任何东西,只要它能告诉下一个值是什么,如果有的话。
|
||||
|
||||
@ -69,9 +71,9 @@ fn main() {
|
||||
|
||||
但是,在第 10 行,我调用了 `.iter()` 函数。这是一个明确的提及,它基于 `my_arr` 的值来获取一个迭代器。这个循环和第 5 行的循环之间唯一的区别是,这里你是通过在数组上调用 `.iter()` 函数来明确地调用它的。
|
||||
|
||||
_在这个状况中_,在一个数据类型上调用 `.iter()` 函数不是必须的。因为这是一个数组,是语言本身提供的一种数据类型,Rust 已经知道如何处理它了。但是你 _需要_ 在自定义数据类型中使用它。
|
||||
_在这个上下文环境中_,在一个数据类型上调用 `.iter()` 函数不是必须的。因为这是一个数组,是语言本身提供的一种数据类型,Rust 已经知道如何处理它了。但是你 _需要_ 在自定义数据类型中使用它。
|
||||
|
||||
最后,在第 15 行,我们有一个循环,它循环遍历一个范围。嗯,差不多是这样。如果你仔细看,这个范围看起来很像 Slice “类型”。Rust 也知道这一点,并且 _为_ 你处理了迭代(哈哈,明白了吗?)。
|
||||
最后,在第 15 行,我们有一个循环,它循环遍历一个范围。嗯,差不多是这样。如果你仔细看,这个范围看起来很像切片 “类型”。Rust 也知道这一点,并且 _为_ 你处理了迭代(哈哈,明白了吗?)。
|
||||
|
||||
> LCTT 译注:此处的梗是,“为你处理了迭代” 的英文原文是 “handles iteration _for_ you",其中的 “for” 与 “for 循环” 的 “for” 是同一个单词。
|
||||
|
||||
@ -131,7 +133,7 @@ while 条件 {
|
||||
}
|
||||
```
|
||||
|
||||
看到了吗?和 `if` 条件语句非常相似!不过没有 `else` 块 ;)
|
||||
看到了吗?和 `if` 条件语句非常相似!不过没有 `else` 块 ; )
|
||||
|
||||
来看一个程序来更好地理解这个。
|
||||
|
||||
@ -193,7 +195,7 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
看待这个特定的例子的最好方法是将它看作是一个增加了一堆没有必要的东西的 `while` 循环 ;)
|
||||
看待这个特定的例子的最好方法是将它看作是一个增加了一堆没有必要的东西的 `while` 循环 ; )
|
||||
|
||||
你有一个可变变量 `var`,它的初始值为 0,它被用作迭代器。无限循环从一个 `if` 条件开始,如果 `var` 的值大于 3,`break` 关键字就会被执行。后来,就像 `while` 循环的前一个例子一样,`var` 的值被打印到标准输出,然后它的值被增加 1。
|
||||
|
||||
@ -318,6 +320,8 @@ fn main() {
|
||||
|
||||
我希望你现在能理解每个循环的适当用例。如果你有任何问题,请告诉我。
|
||||
|
||||
*(题图:MJ/25579e09-ae1c-47d3-8266-3bd9a54456c0)*
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/rust-loops/
|
||||
@ -325,11 +329,11 @@ via: https://itsfoss.com/rust-loops/
|
||||
作者:[Pratham Patel][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Cubik65536](https://github.com/Cubik65536)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/pratham/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://linux.cn/article-15896-1.html
|
||||
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202306/15/164034klkjbf3ibapjbbfk.jpg
|
Loading…
Reference in New Issue
Block a user