Rust

Unsafe Rust

Blok unsafe, raw pointer (*const T, *mut T), FFI, unsafe trait, Undefined Behavior (UB), invarian safety

20 pertanyaan wawancaraยท
Senior
1

Keyword mana yang mengaktifkan kekuatan super dari mode unsafe di Rust?

Jawaban

Keyword unsafe membuka lima kemampuan yang dilarang di safe Rust: melakukan dereference raw pointer, memanggil fungsi unsafe, mengakses variabel static mutable, mengimplementasikan unsafe trait, dan mengakses field union. Blok ini memberi sinyal kepada compiler bahwa developer mengambil tanggung jawab untuk menjamin memory safety.

2

Berapa banyak kemampuan tambahan yang dibuka oleh kode unsafe dibandingkan dengan safe Rust?

Jawaban

Mode unsafe membuka tepat lima kemampuan: melakukan dereference raw pointer, memanggil fungsi atau metode unsafe, mengakses atau memodifikasi variabel static yang mutable, mengimplementasikan trait unsafe, dan mengakses field union. Lima operasi ini adalah satu-satunya perbedaan antara safe dan unsafe Rust.

3

Apa sintaks yang benar untuk membuat raw pointer immutable ke sebuah variabel di Rust?

Jawaban

Sintaks untuk membuat raw pointer immutable adalah let ptr = &x as *const T. Tipe *const T merepresentasikan raw pointer immutable. Membuat raw pointer bersifat safe, hanya deref yang memerlukan blok unsafe. Coercion implisit juga dapat digunakan dengan let ptr: *const T = &x.

4

Apa perbedaan antara *const T dan *mut T di Rust?

5

Mengapa membuat raw pointer diizinkan di safe Rust sementara melakukan dereference tidak?

+17 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

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

Mulai gratis