Rust 入門コース / レッスン 2

構造体と match

struct でデータをまとめる

関連する値は struct でひとまとめにし、impl でメソッドを生やします。

main.rs

struct Course { name: String, lessons: u32, } impl Course { fn summary(&self) -> String { format!("{}(全{}レッスン)", self.name, self.lessons) } } fn main() { let c = Course { name: String::from("Rust 入門"), lessons: 2 }; println!("{}", c.summary()); // match: すべてのケースを網羅しないとコンパイルエラー let level = 2; match level { 1 => println!("入門"), 2 => println!("初級"), _ => println!("それ以外"), } }

match は「漏れ」を許さない

match は取りうるパターンをすべて書かないとコンパイルが通りません(_ はワイルドカード)。「条件の書き忘れ」をコンパイラが防いでくれる、Rust らしい安全装置です。

✅ 理解度チェック

match 式でその他すべてを受けるパターンは?