淡若轻风

博客园 首页 新随笔 联系 订阅 管理
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

 

posted on 2026-05-11 17:24  淡若轻风  阅读(14)  评论(0)    收藏  举报