数据类型

Rust 是静态类型语言,绝大多数类型在编译期确定。类型与 所有权借用与引用 规则共同决定值在栈/堆上的布局与移动行为。


标量类型(Scalar)

分类类型举例说明
有符号整数i8i128, isizeisize 与指针同宽
无符号整数u8u128, usize索引、长度常用 usize
浮点f32, f64默认浮点字面量为 f64
布尔booltrue / false
字符char4 字节 Unicode 标量,非与字节一一对应

整数字面量0xff0o770b10101_000u64


复合类型(概览)

  • 元组 (T, U, ...):定长异构,匿名。
  • 数组 [T; N]栈上定长同质;与 切片 &[T] 搭配使用见下文。
  • 结构体与枚举:见 结构体与枚举

Stringstr

  • str不定长 UTF-8 切片类型,通常以 &str(「字符串切片」)出现,指向某处有效 UTF-8 字节序列。
  • String堆分配、可增长、可改的所有权类型;与 &str 常通过 &s / s.as_str() 互转。

String 的内存由 所有权 管理;&str 多为借用,需满足 生命周期


切片 &[T]&str

切片是「对连续序列的视图」,由指针 + 长度描述,不拥有数据。

let a = [1, 2, 3, 4];
let s: &[i32] = &a[1..3];

与数组相比:切片长度在类型层面是运行时的,API 上极其常见。


类型推断

局部变量常可省略注解,编译器从绑定值使用处推断。函数签名、公有 API 建议显式写出类型以利文档与稳定接口。


Rust 基础目录索引

主题笔记
所有权、移动、Copy所有权
& / &mut、规则借用与引用
'a、结构体上的生命周期生命周期
struct / enum / Option结构体与枚举
matchif let模式匹配
泛型、trait泛型与Trait
Result?错误处理
线程、Send/Sync并发
crate、Cargo.tomlCargo与包管理

相关链接