Rust

Lifetimes

Chú thích lifetime, quy tắc elision, lifetime 'static, lifetime của struct, lifetime bounds

20 câu hỏi phỏng vấn·
Mid-Level
1

Mục đích chính của lifetime trong Rust là gì?

Câu trả lời

Lifetime cho phép compiler kiểm tra rằng tất cả các reference đều hợp lệ trong suốt quá trình sử dụng. Chúng đảm bảo một reference không bao giờ tồn tại lâu hơn dữ liệu mà nó tham chiếu, ngăn chặn dangling reference. Borrow checker sử dụng lifetime để xác thực an toàn bộ nhớ tại thời điểm biên dịch, không có overhead khi chạy.

2

Cú pháp nào được dùng để chú thích lifetime trên một reference?

Câu trả lời

Lifetime được chú thích bằng một dấu nháy đơn theo sau là một tên, thường là chữ thường như 'a. Cú pháp &'a T nghĩa là một reference tới T với lifetime 'a. Theo quy ước, 'a, 'b, 'c được dùng cho các lifetime generic, nhưng bất kỳ định danh hợp lệ nào cũng có thể dùng sau dấu nháy đơn.

3

Lifetime 'static có nghĩa là gì trong Rust?

Câu trả lời

Lifetime 'static cho biết một reference có thể tồn tại trong suốt thời gian chạy của chương trình. Các string literal như "hello" tự động có lifetime 'static vì chúng được nhúng vào binary. Hằng số toàn cục và các giá trị được tạo bằng Box::leak cũng có lifetime này. Lưu ý: 'static không có nghĩa là giá trị tồn tại từ đầu chương trình, mà là nó có thể tồn tại đến cuối.

4

Compiler Rust tự động áp dụng bao nhiêu quy tắc elision lifetime?

5

Tại sao hàm fn longest(x: &str, y: &str) -> &str không biên dịch được?

+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í