
エラー処理
Result<T, E>、Option<T>、unwrap、expect、?、カスタムエラー、エラーの伝播
18 面接問題·
Junior
1値が存在する場合と存在しない場合を表す Rust の型はどれですか?
1
値が存在する場合と存在しない場合を表す Rust の型はどれですか?
回答
Option<T> は、値を保持する Some(T) か、値の不在を示す None のいずれかになる enum です。この型は他の言語に存在する null 値を置き換え、値が存在しない場合を明示的に処理することを開発者に強制するため、実行時の null ポインタエラーを防ぎます。
2成功するか、エラーで失敗するかのどちらかになる操作を表す Rust の型はどれですか?
2
成功するか、エラーで失敗するかのどちらかになる操作を表す Rust の型はどれですか?
回答
Result<T, E> は 2 つのバリアントを持つ enum です。成功時には戻り値を保持する Ok(T)、失敗時にはエラーを保持する Err(E) です。この型は例外を使うのではなく明示的なエラー処理を強制するため、コードがより予測可能になり、エラーがより見えやすくなります。
3unwrap() メソッドは Option<T> に対して何をしますか?
3
unwrap() メソッドは Option<T> に対して何をしますか?
回答
unwrap() は値が存在する場合に Some(T) に含まれる値を返します。Option が None の場合、プログラムはパニック(panic!)を起こし即座に停止します。このメソッドはプロトタイピングには便利ですが、None のケースを適切に処理しないため本番環境では避けるべきです。
4
unwrap() と expect() の違いは何ですか?
5
Result<T, E> を返す関数の中で ? 演算子は何をしますか?
+15 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問コレクション
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問Pattern Matching
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問