Rust 的数据类型体系比较“严格”,但也很强大。
Rust 强调:
⭐
⭐
Rust 强调:
类型安全 + 零成本抽象 + 内存安全
✅ 一、Rust 数据类型总览
Rust 主要分两大类:1. 标量类型(Scalar)
2. 复合类型(Compound)
✅ 二、标量类型(最基础)
⭐ 1. 整数类型
有符号整数
| 类型 | 大小 |
|---|---|
i8 |
8位 |
i16 |
16位 |
i32 |
32位 ⭐ 默认 |
i64 |
64位 |
i128 |
128位 |
isize |
跟平台相关 |
无符号整数
| 类型 | 大小 |
|---|---|
u8 |
8位 |
u16 |
16位 |
u32 |
32位 |
u64 |
64位 |
u128 |
128位 |
usize |
跟平台相关 ⭐ |
例子
let a: i32 = -10;
let b: u8 = 255;
✅ 三、浮点类型
| 类型 | 说明 |
|---|---|
f32 |
单精度 |
f64 |
双精度 ⭐ 默认 |
let pi: f64 = 3.14;
✅ 四、布尔类型
let flag: bool = true;
只有:
true / false
不能像 C 那样:
0 == false
✅ 五、字符类型
let c: char = 'A';
⚠️ Rust 的 char:
是 Unicode 字符(4字节)
不是 C 的 ASCII char。
✅ 六、复合类型
⭐ 1. 元组(Tuple)
let t: (i32, f64, char) = (10, 3.14, 'A');
访问:
println!("{}", t.0);
⭐ 2. 数组(Array)
let arr: [i32; 3] = [1, 2, 3];
✅ 七、字符串类型(重点)
Rust 字符串分两种:
⭐ &str(字符串切片)
let s: &str = "hello";
👉 不可修改
⭐ String
let s: String = String::from("hello");
👉 可动态增长
⚠️ Rust 字符串是重点难点
因为涉及:
-
所有权
-
生命周期
-
UTF-8
✅ 八、结构体(Struct)
定义
struct User {
name: String,
age: u32,
}
使用
let u = User
{
name: String::from("Tom"),
age: 18,
};
✅ 九、枚举(Enum)(Rust很强)
定义
enum State
{
Idle,
Running,
Stop,
}
带数据
enum Message
{
Text(String),
Number(i32),
}
👉 非常强大(比 C# enum 强很多)
✅ 十、Option(Rust核心)
Rust 没有:
null
而是:
Option<T>
例子
let x: Option<i32> = Some(5);
let y: Option<i32> = None;
👉 防止空指针。
✅ 十一、Result<T,E>(错误处理核心)
Result<T, E>
例子
let r: Result<i32, String> = Ok(10);
✅ 十二、引用类型
不可变引用
let r: &i32 = &x;
可变引用
let r: &mut i32 = &mut x;
✅ 十三、集合类型(标准库)
| 类型 | 类似 |
|---|---|
Vec<T> |
List |
HashMap<K,V> |
Dictionary |
HashSet<T> |
HashSet |
BTreeMap |
SortedDictionary |
✅ 十四、动态类型(Trait Object)
Box<dyn Trait>
类似:
C# interface
浙公网安备 33010602011771号