작성
·
34
·
수정됨
0
Rust에서 가변 참조(&mut)를 사용할 때 주요 제약사항은 무엇인가요?
-> 동시에 여러 개의 가변 참조를 만들 수 있습니다.
정답 문항이 살짝 헷갈립니다. 아래 예제로써 가변 참고는 동시에 여러 개는 만들지 못하는 것 같은데 제가 잘못 이해하는 걸까요?
fn main() {
let mut s = String::from("hello");
// s에 대한 '가변 참조' r1을 생성
let r1 = &mut s;
let r2 = &mut s; // 생성 불가
// r1을 통해 원본 데이터 s를 수정
r1.push_str(", world");
println!("{}", s); // "hello, world" 출력
}
답변 2
1
문제가 명확하지 않은것 같습니다.
문제는 가변 참조를 사용할 때 주요 제약사항을 고르라는 것인데요.. 해설을 보면 가변 참조가 아니라 불변 참조에 대한 내용으로 보입니다. "동시에 여러개의 가변 참조를 만들수 없다" 가 보기가 되어야 강사님의 의도에 더 맞지 않을까? 제안드려 봅니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김석범님,
Rust에서 가변 참조(&mut)에 대한 제약사항을 잘 이해하고 계십니다. Rust는 데이터 경쟁(data race)을 방지하기 위해 동시에 여러 개의 가변 참조를 허용하지 않습니다. 즉, 한 번에 하나의 가변 참조만 존재할 수 있으며, 다른 가변 참조를 생성하려고 하면 컴파일 오류가 발생합니다. 예시 코드에서 let r2 = &mut s;
구문은 이러한 이유로 컴파일 오류가 날 것입니다.
Rust의 이러한 제약사항은 메모리 안전성을 보장하기 위해 중요한 역할을 합니다. 올바르게 이해하고 계시니 걱정하지 않으셔도 됩니다!
강의나 추가적인 자료가 궁금하시다면 공식 문서도 참고하시면 좋습니다.
감사합니다.