Learning Rust 项目:Rust 原始数据类型详解
作为一门系统编程语言,Rust 提供了丰富的基础数据类型,这些类型是构建复杂程序的基石。本文将全面介绍 Rust 中的原始数据类型,帮助初学者建立扎实的基础。
布尔类型 (bool)
布尔类型是编程语言中最基础的类型之一,Rust 中的 bool 类型只有两个可能的值:
let is_rust_fast = true;
let is_learning_easy: bool = false;
重要提示:
- 只能使用
true和false作为值 - 不能使用
TRUE、FALSE、1或0来代替
字符类型 (char)
Rust 的字符类型代表一个 Unicode 标量值:
let ascii_char = 'A';
let emoji: char = '🚀';
关键特性:
- 使用单引号表示字符
- 双引号表示字符串,不能用于字符
- 每个 char 占用 4 字节(32位),支持完整的 Unicode 字符集
整数类型
Rust 提供了多种整数类型,分为有符号和无符号两类。
有符号整数 (i8, i16, i32, i64, i128)
| 类型 | 最小值 | 最大值 |
|---|---|---|
| i8 | -128 | 127 |
| i16 | -32,768 | 32,767 |
| i32 | -2,147,483,648 | 2,147,483,647 |
| i64 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
| i128 | -170,141,183,460,469,231,731,687,303,715,884,105,728 | 170,141,183,460,469,231,731,687,303,715,884,105,727 |
无符号整数 (u8, u16, u32, u64, u128)
| 类型 | 最小值 | 最大值 |
|---|---|---|
| u8 | 0 | 255 |
| u16 | 0 | 65,535 |
| u32 | 0 | 4,294,967,295 |
| u64 | 0 | 18,446,744,073,709,551,615 |
| u128 | 0 | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
使用技巧:
- 默认整数类型是
i32 - 可以使用
min_value()和max_value()方法获取类型的取值范围 - 对于数组索引,通常使用
usize类型
浮点类型 (f32, f64)
Rust 提供两种浮点类型:
let pi_approx = 3.14; // 默认是 f64
let precise_pi: f64 = 3.14159265359;
重要说明:
f32是单精度浮点(约6-7位有效数字)f64是双精度浮点(约15-16位有效数字),默认类型- 除非有特殊需求(如嵌入式系统内存限制),否则建议使用
f64
数组 (Array)
数组是固定大小的同类型元素集合:
let primes = [2, 3, 5, 7, 11];
let zeros = [0; 5]; // [0, 0, 0, 0, 0]
特点:
- 大小在编译时确定,不可改变
- 元素类型必须相同
- 可以通过索引访问元素(如
primes[0])
元组 (Tuple)
元组是固定大小的有序集合,可以包含不同类型:
let person = ("Alice", 30, true); // (&str, i32, bool)
特性:
- 使用圆括号表示
- 可以通过模式匹配解构
- 可以通过索引访问(如
person.0)
切片 (Slice)
切片是对数组或其他序列的部分引用:
let arr = [1, 2, 3, 4, 5];
let slice = &arr[1..4]; // [2, 3, 4]
关键点:
- 不拥有数据,只是引用
- 语法为
&array[start..end](end 不包含在内) - 常用于函数参数,避免数据拷贝
字符串切片 (&str)
Rust 中的字符串切片:
let greeting = "Hello, Rust!";
特点:
- 不可变的 UTF-8 编码文本
- 通常以借用形式 (
&str) 出现 - 与
String类型不同,后者是可变的、堆分配的字符串
数值字面量表示技巧
Rust 提供了方便的数值表示方式:
let million = 1_000_000; // 使用下划线提高可读性
let byte: u8 = b'A'; // 字节字面量
let hex = 0xFFFF; // 十六进制
let octal = 0o755; // 八进制
let binary = 0b1100_1010;// 二进制
类型推断与注解
Rust 有强大的类型推断能力:
let x = 5; // 推断为 i32
let y = 3.14; // 推断为 f64
需要时也可以显式注解类型:
let z: i64 = 10;
let pi: f32 = 3.14;
总结
Rust 的原始数据类型设计兼顾了性能与安全性:
- 整数类型丰富,可根据需求选择合适的大小
- 默认浮点类型是
f64,提供更好的精度 - 数组和元组大小固定,保证内存安全
- 切片提供灵活的数据访问方式
- 字符类型全面支持 Unicode
理解这些基础类型是学习 Rust 的重要第一步,它们将作为构建更复杂数据结构的基石。在实际编程中,应根据具体场景选择合适的类型,平衡性能和内存使用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



