
Pattern Matching
match 式、if let、while let、destructuring、guards、@ bindings、網羅性
18 面接問題·
Mid-Level
1Rust の基本的な match 式の正しい構文はどれですか?
1
Rust の基本的な match 式の正しい構文はどれですか?
回答
Rust の match 式は、match キーワードの後に分析する値を続け、その後に波括弧で囲まれた、カンマで区切られた複数のアーム(pattern)を記述します。各アームは pattern の後に => と実行するコードを続けます。この構文により、コンパイラはすべての可能なケースがカバーされていることを検証できます。
2match で残りのすべての値を捕捉するには、どの pattern を使用すべきですか?
2
match で残りのすべての値を捕捉するには、どの pattern を使用すべきですか?
回答
_ (underscore) pattern は Rust の catch-all pattern です。値を変数にバインドせずに任意の値にマッチします。あるいは、変数名 (other や n など) を使うと値を捕捉できます。値を使わない場合は、意図が明確に伝わるため _ が好まれます。
3if let は match と比べてどのように動作しますか?
3
if let は match と比べてどのように動作しますか?
回答
if let は、1 つの pattern だけを処理し他を無視する match の省略構文です。_ catch-all arm を持つ完全な match を書く代わりに、特定のケースだけが重要な場合に if let を使うと値を簡潔に取り出せます。Option や Result とともに使うと特に便利です。
4
Rust の pattern matching の文脈における exhaustiveness とは何ですか?
5
pattern match でタプルを分解するにはどうすればよいですか?
+15 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問エラー処理
Junior
18問コレクション
Junior
20問モジュールとパッケージ
Junior
18問Traits
Mid-Level
22問Generics
Mid-Level
20問Lifetimes
Mid-Level
20問Iterators & Closures
Mid-Level
22問Smart Pointers
Mid-Level
22問Concurrency Basics
Mid-Level
20問async/await
Mid-Level
22問Testing
Mid-Level
18問Cargo & Ecosystem
Mid-Level
18問マクロ
Mid-Level
20問Serde とシリアライゼーション
Mid-Level
20問Unsafe Rust
Senior
20問高度なトレイト
Senior
22問高度な lifetime
Senior
20問Type System
Senior
20問Tokio & Async I/O
Senior
22問パフォーマンス最適化
Senior
20問Memory Management
Senior
20問Web Frameworks
Senior
22問Database Integration
Senior
20問Rust デザインパターン
Senior
20問