
Smart Pointers
Box<T>、Rc<T>、Arc<T>、RefCell<T>、interior mutability、Deref・Drop trait
22 面接問題·
Mid-Level
1RustにおけるBox<T>の主な用途は何ですか?
1
RustにおけるBox<T>の主な用途は何ですか?
回答
Box<T>はデータをstackではなくheapに確保します。これはコンパイル時にサイズが不明な型(再帰的な型)に対して、大きなデータのownershipをコピーせずに移動する場合、あるいはtrait objectを作成する場合に役立ちます。Boxポインタ自体はstack上で固定サイズを持ちます。
2Rustで連結リストのような再帰的な型をどのように定義しますか?
2
Rustで連結リストのような再帰的な型をどのように定義しますか?
回答
enum List { Cons(i32, List), Nil } のような直接の再帰的な型は、コンパイラがサイズを決定できないためコンパイルできません。Box<List> を使うと固定サイズ(ポインタ)のindirectionが作られ、コンパイラが型のサイズを計算できるようになります。
3Rc<T>とArc<T>の主な違いは何ですか?
3
Rc<T>とArc<T>の主な違いは何ですか?
回答
Rc(Reference Counted)は非atomicな参照カウンタを使うため、より高性能ですが単一スレッドに限定されます。Arc(Atomically Reference Counted)はカウンタにatomic操作を使うため、スレッド間での共有が可能ですが、わずかなパフォーマンスのオーバーヘッドがあります。
4
RustにおいてDeref traitは何を可能にしますか?
5
Rust における interior mutability(内部可変性)とは何ですか?
+19 面接問題
その他の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問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問