diff --git a/book/contents/basic/compound-type/tuple.md b/book/contents/basic/compound-type/tuple.md index be1c29bd..5f0656b1 100644 --- a/book/contents/basic/compound-type/tuple.md +++ b/book/contents/basic/compound-type/tuple.md @@ -2,7 +2,7 @@ 元组是由多种类型组合到一起形成的,因此它是复合类型,元组的长度是固定的。 -通过以下语法可以创建一个元组: +可以通过以下语法创建一个元组: ```rust fn main() { let tup: (i32, f64, u8) = (500, 6.4, 1); @@ -25,11 +25,11 @@ fn main() { } ``` -上述代码首先创建一个元组,然后将其绑定到`tup`上,接着使用`let (x, y, z) = tup;`来完成一次模式匹配,因为元组是`(n1,n2,n3)`形式的,因此我们用一模一样的`(x,y,z)`形式来进行匹配,然后把元组中对应的值绑定到变量`x`,`y`,`z`上,这就是解构:用同样的形式把一个复杂对象中的值匹配出来。 +上述代码首先创建一个元组,然后将其绑定到`tup`上,接着使用`let (x, y, z) = tup;`来完成一次模式匹配,因为元组是`(n1,n2,n3)`形式的,因此我们用一模一样的`(x,y,z)`形式来进行匹配,元组中对应的值会绑定到变量`x`,`y`,`z`上。这就是解构:用同样的形式把一个复杂对象中的值匹配出来。 ### 用`.`来访问元组 -模式匹配可以让我们一次性把元组中的值全部或者部分获取出来,如果想要访问某个特定元素,那模式匹配就略显繁琐,对此,Rust提供了`.`的访问方式: +模式匹配可以让我们一次性把元组中的值全部或者部分获取出来,如果只想要访问某个特定元素,那模式匹配就略显繁琐,对此,Rust提供了`.`的访问方式: ```rust fn main() { let x: (i32, f64, u8) = (500, 6.4, 1); @@ -64,6 +64,6 @@ fn calculate_length(s: String) -> (String, usize) { `calculate_length`函数接收`s1`字符串的所有权,然后计算字符串的长度,接着把字符串所有权和字符串长度再返回给`s2`和`len`变量。 -对于其他语言,元组可以用来声明一个3D点,例如`Point(10,20,30)`,虽然使用Rust元组也可以做到:`(10,20,30)`,但是这样写有个非常重大的缺陷: +在其他语言中,可以用结构体来声明一个三维空间中的点,例如`Point(10,20,30)`,虽然使用Rust元组也可以做到:`(10,20,30)`,但是这样写有个非常重大的缺陷: -**不具备任何清晰的含义**,在下一章节中,会提到一种`元组结构体`,可以解决这个问题。 \ No newline at end of file +**不具备任何清晰的含义**,在下一章节中,会提到一种与元组类似的结构体,`元组结构体`,可以解决这个问题。