Day 2:基本資料型別與型別推斷
學習目標
- 認識 Rust 的基本資料型別
- 理解型別推斷如何運作
- 知道何時需要明確標註型別
今日重點
基本型別總覽
let integer: i32 = 42; // 有號整數
let unsigned: u32 = 42; // 無號整數
let float: f64 = 3.14; // 浮點數
let boolean: bool = true; // 布林
let character: char = 'A'; // 字元(Unicode)
let string: String = String::from("Hello");
let slice: &[i32] = &[1, 2, 3]; // 切片
let str: &str = "hi"; // 字串字面值
let tuple: (i32, f64, bool) = (42, 3.14, true);
let array: [i32; 3] = [1, 2, 3]; // 固定長度陣列
型別推斷(Type Inference)
Rust 在編譯時會推斷型別,因此可省略標註:
let name = "John"; // 推斷為 &str
let age = 30; // 推斷為 i32(預設整數)
let pi = 3.14; // 推斷為 f64(預設浮點)
需要精確型別時(例如
u8)仍要明確標註。
整數型別
| 有號 | 無號 | 範圍 |
|---|---|---|
| i8 | u8 | 8 位元 |
| i16 | u16 | 16 位元 |
| i32 | u32 | 32 位元(預設) |
| i64 | u64 | 64 位元 |
| isize | usize | 指針對齊寬度 |
練習
fn main() {
let a: i32 = 100;
let b: u16 = 200;
let c: f32 = 1.5;
let flag: bool = false;
let letter: char = '😀';
println!("{} {} {} {} {}", a, b, c, flag, letter);
}
cargo build,看推斷結果。
2. 把 let pi = 3.14; 明確標成 f64。
自我檢查
- 能列出 Rust 的 8 種基本型別
- 理解型別推斷,並知道何時要標註
- 知道 i32 和 usize 的預設行為