Đi đến nội dung
Lỗi trình biên dịch RustLỗi
E0499

E0499 — Không thể mượn mutably nhiều hơn một lần

Một giá trị bị mượn mutably nhiều hơn một lần cùng lúc.

rustcargo

Nguyên nhân gây ra lỗi này

Borrow checker của Rust ngăn hai mutable reference tới cùng dữ liệu tồn tại đồng thời. Điều này ngăn data race và đảm bảo an toàn bộ nhớ.

Cách sửa

Tái cấu trúc code để chỉ tồn tại một mutable borrow tại một thời điểm. Dùng block để giới hạn phạm vi của mutable borrow đầu tiên. Cân nhắc dùng Cell, RefCell, hoặc Mutex cho pattern interior mutability.

Ví dụ

let mut s = String::new();
let r1 = &mut s;
let r2 = &mut s;
Tài liệu chính thức

Mã lỗi liên quan