# 变量与数据类型

URL: https://caijiao.org/rust/03-basics/01-variables
Source: docs/rust/03-basics/01-variables.md
Description: Rust 使用静态类型系统，变量默认不可变，支持多种数据类型如整型、浮点型、布尔值、字符、元组与数组，保障性能与类型安全。

Rust 是静态类型语言，所有变量在编译期确定类型。默认变量是不可变的，需使用 `mut` 显式声明可变性。

## 变量声明

```rust
let x = 5;         // 不可变变量
let mut y = 10;    // 可变变量
y += 5;
```

- 使用 `let` 声明变量
- 使用 `mut` 声明可变变量
- 支持解构和模式匹配赋值

## 常量

使用 `const` 声明常量，必须标注类型：

```rust
const PI: f64 = 3.1415;
```

常量在编译期确定，不可修改，命名一般为全大写。

## 数据类型

Rust 拥有丰富的基础类型：

### 整型（有符号/无符号）

| 类型    | 位数           | 示例值       |
| ------- | -------------- | ------------ |
| `i8`    | 8              | -128 \~ 127  |
| `u8`    | 8              | 0 \~ 255     |
| `i32`   | 32             | 常用默认整数 |
| `usize` | 与平台位数一致 |              |

```rust
let a: i32 = -42;
let b: u8 = 255;
```

### 浮点型

- `f32`：单精度
- `f64`：双精度（默认）

```rust
let pi: f64 = 3.14159;
```

### 布尔值

```rust
let is_valid: bool = true;
```

### 字符（char）

支持 Unicode 字符：

```rust
let heart = '♥';
```

### 元组

```rust
let tup: (i32, f64, char) = (1, 2.0, 'c');
let (x, y, z) = tup;
```

### 数组

```rust
let arr = [1, 2, 3, 4, 5];
let first = arr[0];
```

---



Rust Playground 示例代码
