复合类型
| 类型 | 字面量 | |
|---|---|---|
| 数组(Arrays) | [T; N] | [20, 30, 40], [0; 3] |
| 元组(Tuples) | (), (T,), (T1, T2), … | (), ('x',), ('x', 1.2), … |
数组的赋值和访问操作:
fn main() { let mut a: [i8; 10] = [42; 10]; a[5] = 0; println!("a: {:?}", a); }
元组的赋值和访问操作:
fn main() { let t: (i8, bool) = (7, true); println!("t.0: {}", t.0); println!("t.1: {}", t.1); }
关键点:
数组:
-
A value of the array type
[T; N]holdsN(a compile-time constant) elements of the same typeT. Note that the length of the array is part of its type, which means that[u8; 3]and[u8; 4]are considered two different types. -
我们可以使用字面量来为数组赋值。
-
在主函数中,打印(print)语句使用
?格式请求调试实现。 使用参数{}打印默认输出,{:?}表示以调试格式输出。 我们也可以不在格式化字符串后面指定变量值,直接使用{a}和{a:?}进行输出。 -
添加
#, 比如{a:#?}, 会输出“美观打印(pretty printing)” 格式, 这种格式可能会更加易读。
元组:
-
和数组一样,元组也具有固定的长度。
-
元组将不同类型的值组成一个复合类型。
-
元组中的字段可以通过英文句号加上值的下标进行访问比如:
t.0,t.1。 -
空元组
()也被称作 “单元(unit)类型”. 它既是一个类型, 也是这种类型的唯一值——也就是说它的类型和它的 值都被表示为()。它通常用于表示,比如,一个 函数或表达式没有返回值,我们会在后续的幻灯片种见到这种用法。- 你可以将其理解为你可能在其他编程语言中比较熟悉的
void类型
- 你可以将其理解为你可能在其他编程语言中比较熟悉的