From b36c51ebe2f6a9e5cc00c4e7080abf06cc5d2983 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 23 May 2023 16:58:39 +0800 Subject: [PATCH] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Cubik65536 https://linux.cn/article-15837-1.html 辛苦了。 ID 的问题我还没空解决,我尽快。 --- ... Rust Basics Series 4 Arrays and Tuples in Rust.md | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) rename {translated/tech => published}/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md (81%) diff --git a/translated/tech/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md b/published/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md similarity index 81% rename from translated/tech/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md rename to published/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md index b70c4c89ea..750af4fdd8 100644 --- a/translated/tech/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md +++ b/published/20230417.1 ⭐️⭐️ Rust Basics Series 4 Arrays and Tuples in Rust.md @@ -3,14 +3,18 @@ [#]: author: "Pratham Patel https://itsfoss.com/author/pratham/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15837-1.html" Rust 基础系列 #4: Rust 中的数组和元组 ====== -在上一篇文章中,你学习到了 Rust 中的标量数据类型。它们是整型、浮点数、字符和布尔值。 +![][0] + +> 在 Rust 系列的第四篇中,学习复合数据类型、数组和元组。 + +在上一篇文章中,你学习到了 Rust 中的 [标量数据类型][1]。它们是整型、浮点数、字符和布尔值。 在本文中,我们将会看看 Rust 编程语言中的复合数据类型。 @@ -20,8 +24,8 @@ Rust 基础系列 #4: Rust 中的数组和元组 Rust 编程语言中有两种这样的数据类型: -- **数组**:存储相同类型的多个值。 -- **元组**:存储多个值,可以是相同的类型,也可以是不同的类型。 +- 数组Array:存储相同类型的多个值。 +- 元组Tuple:存储多个值,可以是相同的类型,也可以是不同的类型。 让我们了解一下它们吧! @@ -30,7 +34,7 @@ Rust 编程语言中有两种这样的数据类型: Rust 编程语言中的数组具有以下特性: - 每一个元素都必须是相同的类型 -- 数组只有一个固定的长度 +- 数组有一个固定的长度 - 数组存储在堆栈中,即其中存储的数据可以被 _迅速_ 访问 创建数组的语法如下: @@ -63,7 +67,7 @@ fn main() { } ``` -这里,我定义了一个字符数组和另一个存储 `i32` 类型的值的数组。`greeting` 数组以单独字符的形式存储了字符串 "Hello world!" 的字符。`pi` 数组以单独数字的形式存储了圆周率小数点后的前 10 位数字。 +这里,我定义了一个字符数组和另一个存储 `i32` 类型的值的数组。`greeting` 数组以单独字符的形式存储了字符串 `"Hello world!"` 的字符。`pi` 数组以单独数字的形式存储了圆周率小数点后的前 10 位数字。 然后,我使用 `for` 循环打印了 `greeting` 数组的每个字符。(我很快就会讲到循环。)然后,我打印了 `pi` 数组的前 4 个值。 @@ -78,7 +82,7 @@ Pi: 3.11415 let variable_name = [y; x]; ``` -来看一个演示... +来看一个演示…… ``` fn main() { @@ -99,9 +103,7 @@ fn main() { 10 10 10 10 10 ``` -🤸 - -作为联系,尝试创建一个长度为 _x_ 的数组,然后尝试访问数组的第 _x+1_ 个元素。看看会发生什么。 +> 🤸 作为练习,尝试创建一个长度为 _x_ 的数组,然后尝试访问数组的第 _x+1_ 个元素。看看会发生什么。 ### Rust 中的元组 @@ -140,11 +142,11 @@ fn main() { 在上面的代码中,我在第 2 行和第 3 行声明了两个元组。它们只包含我当时想到的随机值。但是仔细看,两个元组中每个元素的数据类型都不同。然后,在第 5 行和第 6 行,我打印了两个元组的每个元素。 -在第 9 行,我声明了一个名为 `pixel` 的元组,它有 3 个元素。每个元素都是组成像素的颜色红色、绿色和蓝色的亮度值。这个范围是从 0 到 255。所以,理想情况下,我会声明类型为 `(u8, u8, u8)`,但是在学习代码时不需要这样优化 ;) +在第 9 行,我声明了一个名为 `pixel` 的元组,它有 3 个元素。每个元素都是组成像素的颜色红色、绿色和蓝色的亮度值。这个范围是从 0 到 255。所以,理想情况下,我会声明类型为 `(u8, u8, u8)`,但是在学习代码时不需要这样优化 ; ) 然后,在第 10 行,我“解构”了 `pixel` 元组的每个值,并将其存储在单独的变量 `red`、`green` 和 `blue` 中。然后,我打印了 `red`、`green` 和 `blue` 变量的值,而不是 `pixel` 元组的值。 -让我们看看输出... +让我们看看输出…… ``` a.0: 38, a.1: 923.329, a.2: true @@ -152,19 +154,19 @@ b.0: r, b.1: 43, b.2: 3.14, b.3: false red: 50, green: 0, blue: 200 ``` -看起来不错 :) +看起来不错 : ) ### 额外内容:切片 -准确的来说,切片不是 Rust 中的复合数据类型。相反,切片是现有复合数据类型的 _切片_。 +准确的来说,切片Slice 不是 Rust 中的复合数据类型。相反,切片是现有复合数据类型的 “切片”。 一个切片由三个元素组成: - 一个初始索引 -- 切片运算符 (`..` 或 `..=`) +- 切片运算符(`..` 或 `..=`) - 一个结束索引 -接下来是数组切片的一个示例。 +接下来是数组切片的一个示例: ``` fn main() { @@ -219,6 +221,8 @@ fn main() { 在下一章中,你将学习如何在 Rust 程序中使用函数。敬请关注。 +*(题图:MJ/22a0d143-2216-439f-8e1d-abd94cdfdbd0)* + -------------------------------------------------------------------------------- via: https://itsfoss.com/rust-arrays-tuples/ @@ -226,9 +230,11 @@ via: https://itsfoss.com/rust-arrays-tuples/ 作者:[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-15811-1.html +[0]: https://img.linux.net.cn/data/attachment/album/202305/23/165645ljp41i87p7xcpx1z.jpg \ No newline at end of file