Rust入门-02-数据类型
数据类型(data type)
Rust 是一种静态类型(statically typed)的语言,所以必须标明所有变量的类型。
标量(scalar)类型
-
标量表示单个值,有4个基本的标量类型
-
整形
-
浮点型
-
布尔型
-
字符
-
1. 整数(integer)类型
- 整数:没有小数部分的数字
- i ( integer ) 表示有符号类型
- u (unsigned) 表示无符号类型
| 长度 | 有符号类型 | 无符号类型 |
|---|---|---|
| 8 位 | i8 |
u8 |
| 16 位 | i16 |
u16 |
| 32 位 | i32 |
u32 |
| 64 位 | i64 |
u64 |
| 128 位 | i128 |
u128 |
| arch | isize |
usize |
isize 和 usize 类型取决于程序运行的计算机体系结构
- 可以使用类型后缀来指定类型
- 数字字面量还可以使用
_作为可视分隔符以方便读数- 如
1_000,值和1000相同
- 如
- 数字字面量还可以使用
| 数字字面量 | 示例 |
|---|---|
| 十进制 | 98_222 |
| 十六进制 | 0xff |
| 八进制 | 0o77 |
| 二进制 | 0b1111_0000 |
字节 (仅限于 u8) |
b'A' |
-
整数类型默认形式为
i32 -
整形溢出
2.浮点类型
- 浮点数(floating-point number):带有小数点的数字
f32大小为32位(单精度浮点型)f64大小为64位(双精度浮点型)
- 浮点类型默认形式为是
f64
3.布尔类型
-
两个可能的值
turefalse
-
使用
bool声明 -
大小为 1 个字节
4.字符类型
- 声明时用单引号
- 大小为4 个字节(与其他语言不同
复合类型(compound type)
- 将多个值组合成一个类型,有2个基本的复合类型
- 元组(tuple)
- 数组(array)
1.元组类型
-
声明后长度固定
-
通过小括号内以逗号分隔
- 其中每个位置都有一个类型
- 且类型可以相同,可以不同
let tup: (i32, f64, u8) = (500, 6.4, 1); - 其中每个位置都有一个类型
-
解构(destructuring)
- 借助
let将元组分解为单独的变量
let tup = (500, 6.4, 1); let (x, y, z) = tup; //将元组绑定到变量tup上 //并用let将元组分为三部分 println!("The value of y is: {}", y);- 还可以使用(句号)
.接访问的值来直接访问元组元素- 索引从 **0 **开始
let x: (i32, f64, u8) = (500, 6.4, 1); let five_hundred = x.0; let six_point_four = x.1; let one = x.2; - 借助
-
没有值的,或者只有一个值的元组
()被称为单元类型(unit type)- 该值被称为单元值(unit value)
- 如果表达式不返回任何其他值,就隐式地返回单元值。
2.数组类型
-
数组是可以在栈上分配的已知固定大小的单个内存块
- 其将数据分配到栈而不是堆
-
长度固定(与其他语言不同
-
通过方括号内以逗号分隔
- 每个元素类型相同
let a = [1, 2, 3, 4, 5]; -
初始化
- 使用方括号编写数组的类型与元素数,其中用分号分隔
- 方括号第二个数为元素的数量
- 使用方括号编写数组的类型与元素数,其中用分号分隔
let a: [i32; 5] = [1, 2, 3, 4, 5];
* 每个元素都相同时,指定元素初始值与元素数
```rust
let a = [3; 5];
相当于
let a = [3, 3, 3, 3, 3];
-
访问数组元素
- 使用索引访问
let a = [1, 2, 3, 4, 5]; let first = a[0]; let second = a[1];- 若访问超出数组末尾的数组元素时
- 会直接导致程序错误并推出
- 而不是允许内存访问并继续运行程序
-
vector(动态数组,可变数组)
- 其大小允许增长或缩小

浙公网安备 33010602011771号