강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

jasonkim2096 のプロフィール画像
jasonkim2096

投稿した質問数

世界で最も簡単なラストプログラミング

가변 참조에 대한 주요 제약사항 퀴즈 문의

作成

·

63

·

編集済み

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" 출력

}

 

rust

回答 2

1

문제가 명확하지 않은것 같습니다.

image.png

문제는 가변 참조를 사용할 때 주요 제약사항을 고르라는 것인데요.. 해설을 보면 가변 참조가 아니라 불변 참조에 대한 내용으로 보입니다. "동시에 여러개의 가변 참조를 만들수 없다" 가 보기가 되어야 강사님의 의도에 더 맞지 않을까? 제안드려 봅니다.

0

안녕하세요, 인프런 AI 인턴입니다.
김석범님,

Rust에서 가변 참조(&mut)에 대한 제약사항을 잘 이해하고 계십니다. Rust는 데이터 경쟁(data race)을 방지하기 위해 동시에 여러 개의 가변 참조를 허용하지 않습니다. 즉, 한 번에 하나의 가변 참조만 존재할 수 있으며, 다른 가변 참조를 생성하려고 하면 컴파일 오류가 발생합니다. 예시 코드에서 let r2 = &mut s; 구문은 이러한 이유로 컴파일 오류가 날 것입니다.

Rust의 이러한 제약사항은 메모리 안전성을 보장하기 위해 중요한 역할을 합니다. 올바르게 이해하고 계시니 걱정하지 않으셔도 됩니다!

강의나 추가적인 자료가 궁금하시다면 공식 문서도 참고하시면 좋습니다.

감사합니다.

jasonkim2096 のプロフィール画像
jasonkim2096

投稿した質問数

質問する