Rust-数据类型【4】
数据类型
Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型
标量
标量类型代表一个单独的值
四种基本标量类型:
- 整型
- 浮点型
- 布尔类型
- 字符类型
整型
没有小数部分的数字 整型默认是 i32
长度 | 有符号 | 存储的数字范围 | 无符号 | 存储的数字范围 |
---|---|---|---|---|
8-bit | i8 | -128 至 127 | u8 | 0 至 255 |
16-bit | i16 | -32768 至 32767 | u16 | 0 至 65535 |
32-bit | i32 | -2147483648 至 2147483647 | u32 | 0 至 4294967295 |
64-bit | i64 | -9223372036854775808 至 9223372036854775807 | u64 | 0 至 18446744073709551615 |
128-bit | i128 | -170141183460469231731687303715884105728 至 170141183460469231731687303715884105727 | u128 | 0 至 340282366920938463463374607431768211455 |
架构相关 | isize | – | usize | – |
1 |
|
整型溢出:Rust 中整型溢出会导致 panic
- debug 模式下会 panic
- release 模式下会进行二进制补码溢出 例如: u8 溢出 此类型能容纳最大值还大的值会回绕到最小值,值 256 变成 0,值 257 变成 1,依此类推。程序不会 panic
浮点型
Rust 有两个原生的 浮点数类型,它们是带小数点的数字。Rust 的浮点数类型是 f32 和 f64,分别占 32 位和 64 位。默认类型是 f64,因为在现代 CPU 中,它与 f32 速度几乎一样,不过精度更高。所有的浮点型都是有符号的
1 |
|
浮点数采用 IEEE-754 标准表示。(f32 是单精度浮点数,f64 是双精度浮点数。)
数值运算
1 |
|
布尔类型
Rust 中的布尔类型使用 bool 表示
1 |
|
字符类型
Rust 的 char 类型表示单个 Unicode 标量值,占用 4 个字节(32 位),可以表示从 U+0000 到 U+10FFFF 范围内的任何 Unicode 字符。这意味着它可以表示不仅仅是 ASCII 字符,还包括中文、日文、表情符号等
1 |
|
注意:单引号 双引号 必须严格区分
- 字符串可以为空(如 “”),但不能用单引号包裹(如 ‘’ 会报错)
常见错误示例
1 |
|
复合类型
复合类型可以将多个值组合成一个类型
元组
元组是一个可以包含多个不同类型值的复合类型。元组的长度是固定的,一旦创建,就不能改变。
1 |
|
数组
数组是一个固定长度的、相同类型的元素集合
1 |
|
Rust-数据类型【4】
https://sunjc.vip/2025/07/25/Rust-数据类型【4】/