Rust

Smart Pointers

Box<T>、Rc<T>、Arc<T>、RefCell<T>、interior mutability、Deref・Drop trait

22 面接問題·
Mid-Level
1

RustにおけるBox<T>の主な用途は何ですか?

回答

Box<T>はデータをstackではなくheapに確保します。これはコンパイル時にサイズが不明な型(再帰的な型)に対して、大きなデータのownershipをコピーせずに移動する場合、あるいはtrait objectを作成する場合に役立ちます。Boxポインタ自体はstack上で固定サイズを持ちます。

2

Rustで連結リストのような再帰的な型をどのように定義しますか?

回答

enum List { Cons(i32, List), Nil } のような直接の再帰的な型は、コンパイラがサイズを決定できないためコンパイルできません。Box<List> を使うと固定サイズ(ポインタ)のindirectionが作られ、コンパイラが型のサイズを計算できるようになります。

3

Rc<T>とArc<T>の主な違いは何ですか?

回答

Rc(Reference Counted)は非atomicな参照カウンタを使うため、より高性能ですが単一スレッドに限定されます。Arc(Atomically Reference Counted)はカウンタにatomic操作を使うため、スレッド間での共有が可能ですが、わずかなパフォーマンスのオーバーヘッドがあります。

4

RustにおいてDeref traitは何を可能にしますか?

5

Rust における interior mutability(内部可変性)とは何ですか?

+19 面接問題

次の面接に向けてRustをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める