Rust

Unsafe Rust

Unsafe blocks, raw pointers (*const T, *mut T), FFI, unsafe traits, Undefined Behavior (UB), bất biến safety

20 câu hỏi phỏng vấn·
Senior
1

Từ khóa nào kích hoạt các siêu năng lực của chế độ unsafe trong Rust?

Câu trả lời

Từ khóa unsafe mở khóa năm khả năng bị cấm trong safe Rust: dereference raw pointers, gọi hàm unsafe, truy cập biến static mutable, triển khai unsafe traits, và truy cập field của union. Block này báo cho compiler biết rằng lập trình viên chịu trách nhiệm đảm bảo memory safety.

2

Code unsafe mở khóa thêm bao nhiêu khả năng so với safe Rust?

Câu trả lời

Chế độ unsafe mở khóa chính xác năm khả năng: dereference các raw pointer, gọi các hàm hoặc phương thức unsafe, truy cập hoặc sửa đổi các biến static mutable, implement các trait unsafe, và truy cập các trường của union. Năm thao tác này là những khác biệt duy nhất giữa safe và unsafe Rust.

3

Cú pháp đúng để tạo một raw pointer immutable tới một biến trong Rust là gì?

Câu trả lời

Cú pháp để tạo một raw pointer immutable là let ptr = &x as *const T. Kiểu *const T biểu thị một raw pointer immutable. Việc tạo raw pointer là safe, chỉ deref mới cần một khối unsafe. Cũng có thể dùng ép kiểu ngầm định với let ptr: *const T = &x.

4

Sự khác biệt giữa *const T và *mut T trong Rust là gì?

5

Tại sao việc tạo raw pointer được phép trong safe Rust nhưng việc dereference chúng thì không?

+17 câu hỏi phỏng vấn

Nắm vững Rust cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí