Rust 数据存储
1. 注释
单行注释:
//多行注释:
/* …… */文档注释:
///
2. I/O操作
输出
println!:带换行输出
- 示例:
println!("Hello, {}!", name);
- 示例:
print!:不带换行输出
- 示例:
print!("Hello, ");
- 示例:
3. 变量定义
let:声明变量(默认不可变)
- 示例:
let x = 5; - 可变:
let mut y = 10;
- 示例:
const:声明常量(必须指定类型)
- 示例:
const MAX_POINTS: u32 = 100_000;
- 示例:
类型声明:可自动推断,也可显式指定
- 示例:
let a: i32 = 10;
- 示例:
4. 数据类型
基本类型
| 类型 | 描述 | 大小 | 示例 |
|---|---|---|---|
| i8/i16/i32/i64/i128 | 有符号整型 | 1/2/4/8/16字节 | let x: i32 = -10; |
| u8/u16/u32/u64/u128 | 无符号整型 | 1/2/4/8/16字节 | let x: u32 = 10; |
| f32 | 单精度浮点型 | 4字节 | let x: f32 = 3.14; |
| f64 | 双精度浮点型 | 8字节 | let x: f64 = 3.14159; |
| bool | 布尔型 | 1字节 | let x: bool = true; |
| char | 字符型 | 4字节 | let x: char = 'A'; |
| str | 字符串切片 | 变长 | let s: &str = "hello"; |
| String | 字符串类型 | 变长 | let s = String::from("hello"); |
数组 []
相同类型元素的集合,长度固定
rustlet arr: [i32; 5] = [1, 2, 3, 4, 5]; let arr = [3; 5]; // [3, 3, 3, 3, 3]
元组 ()
不同类型元素的集合
rustlet tup: (i32, f64, char) = (500, 6.4, 'A'); let (x, y, z) = tup; // 解构
结构体
与 C 语言类似
ruststruct Point { x: i32, y: i32, } let p = Point { x: 0, y: 0 };
枚举
命名的常量集合
rustenum Color { Red, Green, Blue, }
5. 所有权
- 规则:每个值只能有一个所有者
| 操作符 | 说明 | 示例 |
|---|---|---|
| = | 传递所有权(移动) | let b = a; |
| & | 借用(不可变引用) | let ref_a = &a; |
| &mut | 可变借用 | let ref_a = &mut a; |
| * | 解引用 | let value = *ptr; |
- 总结:
=换内存地址,&传数值,*传内存地址的数值
