前言
Rust是一门静态类型的编程语言,这就意味着在编译程序的过程当中就需要知道所有变量的具体类型。Rust中的每一个值都有其特定的数据类型,Rust会根据具体的数据类型来决定应该如何来处理它们(变量)。Rust的数据类型分为了标量类型和复合类型,下面让我们来具体的看看吧。
标量类型
在Rust中的标量类型是指单个值类型的统称。Rust中内置了4种基础的标量类型,它们分别为: 整数类型,浮点数类型,布尔类型以及字符型。下面来具体的介绍这4种数据类型。
- 整数类型
整数类型是指没有小数部分的数字,例如: 1, 2, 3, -9等。根据有无符号,整数类型又可以分成无符号整数类型和有符号整数类型。有符号整数即能存储正数又能存储负数,而无符号整数只能存储负数。根据能存储的大小,整数类型又可以进一步的分为1字节,2字节,4字节,8字节,16字节。在默认情况下Rust默认存储的整数类型是i32类型。
长度 | 有符号 | 无符号 |
8位 | i8 | u8 |
16位 | i16 | u16 |
32位 | i32 | u32 |
64位 | i64 | u64 |
arch | isize | usize |
上表列出了Rust中所有的整数类型,需要注意的是isize和usize主要是作为数组和集合的索引类型来使用,它们的长度依赖于运行程序所在的计算机系统,如果是在64位的系统下其长度位64位,如果是在32位的系统其长度则为32位。
2. 浮点数类型
Rust提供了两种基础的浮点数类型,浮点数类型就是带有小数点的数据类型。这两种浮点类型分别位f32和f64,它们分别占用32位和64位的空间。默认情况下Rust会将浮点数字面量的类型推导位f64。Rust中的浮点数使用了IEEE-754的标准来进行表述,所以f32和f64它们分别对应着标准中的单精度和双精度浮点数。
数据类型 | 说明 |
f32 | 单精度浮点数类型 |
f64 | 双精度浮点数类型 |
3. 布尔数据类型
和大多数的编程语言一样,Rust也提供了布尔类型。布尔的值只有两种false和true,它只占据单个字节的空间大小。
布尔值 | 说明 |
true | 表示真 |
false | 表示假 |
4. 字符类型
在Rust中提供了相应的字符类型,它被用于描述语言中最为基础的单个字符。需要注意的是,char类型需要使用单引号来指定。char类型在Rust中占4个字节,是一个Unicode标量值。
数据类型 | 说明 |
char | 用于表示单个字符 |
复合类型
所谓符合类型就是可以将不同类型的值组合成一个类型。Rust内置了两种基础的符合类型,它们分别为: 元组和数组。
- 元组类型
元组类型是一种相当常见的复合类型,它可以将其他不同类型的多个值组合成一个复合类型。元组的长度是固定的,这意味着一旦创建一个元组,我们后续就不能对其进行追加和减少里边的元素个数。
2. 数组类型
和大多数编程语言一样,Rust也提供了数组这种可以存储多个值的数据集合。与元组不同的是,数组中的每个元素都必须是相同的数据类型。Rust中的数组的长度也是固定的,这也说明了一旦声明了一个数组你就再也不能随意更改其大小,这一点跟其他编程语言有点不一样。
小结
这章节我们主要介绍了Rust中常见的标量类型和复合类型,并对其对应的各个基础类型也进行了介绍。后续我们再继续探究怎么去定义和使用这些数据类型。