(一)Rust基本类型
本文最后更新于 2024年6月24日 上午
1 常量类型
Rust是一个静态类型语言,每一个变量都应该有确定的数据类型。
1.1 整型类型
| 长度 | 有符号 | 无符号 |
|---|---|---|
| 8-bit | i8 | u8 |
| 16-bit | i16 | u16 |
| 32-bit | i32 | u32 |
| 64-bit | i64 | u64 |
| 128-bit | i128 | u128 |
| arch | isize | usize |
整型类型的可以使用不同进制进行描述。
| 数字进制 | 例子 |
|---|---|
| 十进制 | 98_222 |
| 十六进制 | 0xff |
| 八进制 | 0o77 |
| 二进制 | 0b1111_0000 |
| 单字节(u8) | b’A’ |
1.2 浮点类型
Rust拥有两个浮点数的基本类型,分别是f32和f64。f64是Rust的默认类型,因为在现代CPU中,f32和f64速度相同,但f64拥有更大的范围。Rust中所有的浮点类型均是有符号的。
1 | |
1.3 布尔类型
Rust和大多数其他语言一样,布尔类型只有两个可能值:true和false。布尔类型占用一个字节,可以使用bool。
1 | |
1.4 字符类型
Rust中的字符占用4字节,这意味着它相较于ASCII来说能标识更多字符。
1 | |
2 复合类型
2.1 元组类型
元组可以将不同类型的变量组合在一起。元组在声明后长度不能变化,无法缩小或增长。下面是声明一个元组的例子。
1 | |
上面例子中,元组tup绑定到整个元组,因为元组被视为一个单独的复合元素。为了从元组中得到其内部独立的变量,我们可以使用模式匹配来解析元组值。
1 | |
这个程序首先创建了一个元组,并将tup绑定到该元组。然后使用let将tup拆分为独立的变量x,y,z。这种方法叫做解构,因为它将一个元组拆分为三个单独的部分。最后这个程序输出了y的值。
我们可以通过另一种方式获取元组中的元素。直接通过使用句点后面跟随我们想要获取值的索引来访问元组中的元素。
1 | |
这个程序创建了一个元组x,通过独立的索引获取了元组中每一个元素的值。和大多数编程语言一样,元组的索引也是从0开始。没有任何值的元组有一个特殊的名字,unit。这个值和它的类型都写作(),这代表空值或者空返回类型。表达式隐式返回unit如果它们没有返回任何值。
2.2 数组类型
2.2.1 数组声明
另一个获取不同值集合的方法是使用数组。和元组不同,数组中的每一个元素需要是相同的数据类型。不同于其他语言中的数组,Rust中的数组为固定长度。下面是声明数组的一个例子。
1 | |
当你在元素数量固定或者你想要在栈上分配内存而非堆时数组非常有用。同时数组还有另一种声明方式,例如
1 | |
这里,i32代表数组中每一个元素的类型,5代表数组中有5个元素。
你还可以通过给定初始值初始化一个数组,使数组中的每个元素都是该值,例如
1 | |
数组a中包含5个元素,并且每个元素的初始值均为3。
2.2.2 操作数组元素
可以通过索引获取数组中的元素,例如
1 | |
也可以通过索引修改数组中的元素,例如
1 | |