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

E0502 — 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.

rustcargo

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);
Tài liệu chính thức

Mã lỗi liên quan