Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, trait Deref dan Drop

22 pertanyaan wawancaraยท
Mid-Level
1

Apa kasus penggunaan utama Box<T> di Rust?

Jawaban

Box<T> mengalokasikan data di heap alih-alih stack. Ini berguna untuk tipe yang ukurannya tidak diketahui saat compile time (tipe rekursif), untuk memindahkan ownership data besar tanpa menyalin, atau untuk membuat trait object. Pointer Box itu sendiri memiliki ukuran tetap di stack.

2

Bagaimana cara mendefinisikan tipe rekursif seperti linked list di Rust?

Jawaban

Tipe rekursif langsung seperti enum List { Cons(i32, List), Nil } tidak dapat dikompilasi karena compiler tidak dapat menentukan ukurannya. Menggunakan Box<List> menciptakan indirection dengan ukuran tetap (pointer), sehingga compiler dapat menghitung ukuran tipe tersebut.

3

Apa perbedaan utama antara Rc<T> dan Arc<T>?

Jawaban

Rc (Reference Counted) menggunakan penghitung referensi non-atomik, sehingga lebih cepat tetapi terbatas pada satu thread. Arc (Atomically Reference Counted) menggunakan operasi atomik untuk penghitungnya, memungkinkan berbagi antar thread tetapi dengan sedikit overhead performa.

4

Apa yang dimungkinkan oleh trait Deref di Rust?

5

Apa itu interior mutability di Rust?

+19 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis