E0502E0502 — Không thể mượn mutably vì đang có immutable borrow
Không thể mượn mutably một giá trị trong khi immutable borrow vẫn còn hiệu lực.
Nguyên nhân gây ra lỗi này
Rust bắt buộc rằng không thể tồn tại đồng thời một mutable reference và một immutable reference tới cùng một dữ liệu. Immutable borrow vẫn đang được dùng khi bạn cố tạo mutable borrow.
Cách sửa
Tái cấu trúc code để immutable borrow kết thúc trước khi mutable borrow bắt đầu. Clone dữ liệu nếu cần các bản sao độc lập. Dùng block để giới hạn phạm vi của immutable borrow.
Ví dụ
let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);Mã lỗi liên quan
E0599E0599 — Không tìm thấy method X trên kiểu này
Method không tồn tại trên kiểu đã cho, hoặc trait cần thiết chưa được đưa vào scope.
E0597E0597 — Giá trị mượn sống không đủ lâu
Một reference tồn tại lâu hơn dữ liệu mà nó trỏ tới.
E0133E0133 — Gọi Hàm Unsafe Yêu Cầu Khối unsafe
Một hàm hoặc thao tác unsafe được dùng bên ngoài khối unsafe.
E0308E0308 — Kiểu Không Khớp Trong Các Nhánh Match
Các nhánh match khác nhau trả về kiểu không tương thích.
E0384E0384 — Không Thể Gán Hai Lần Cho Biến Bất Biến
Một biến đang được gán lại nhưng không được khai báo là mutable.
E0200E0200 — Unsafe Trait Yêu Cầu Unsafe Impl
Một unsafe trait phải được implement bằng khối unsafe impl.