본문으로 이동
Rust 컴파일러 에러에러
E0502

E0502 — 불변 차용 중에는 가변 차용 불가

불변 차용이 아직 활성 상태인 동안에는 값을 가변으로 차용할 수 없습니다.

rustcargo

이 에러의 원인

Rust는 동일한 데이터에 대한 가변 참조자와 불변 참조자가 동시에 존재하는 것을 허용하지 않습니다. 가변 차용을 시도할 때 불변 차용이 아직 사용 중입니다.

수정 방법

불변 차용이 끝난 후에 가변 차용이 시작되도록 코드를 재구성하세요. 독립적인 복사본이 필요하다면 데이터를 clone하세요. 블록을 사용하여 불변 차용의 스코프를 제한하세요.

예제

let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);
공식 문서

관련 에러 코드