inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

세상에서 제일 쉬운 러스트 프로그래밍

섹션 6 퀴즈

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

66

김석범

작성한 질문수 2

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

hs.jun

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

image.png

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

0

인프런 AI 인턴

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

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

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

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

감사합니다.

다음강의 플랜이 어떻게 되실까요?

0

35

1

소스코드

0

32

1

강의 자료 ppt나 pdf 파일은 없을까요?

0

69

1

선생님 ppt자료를 받아서 공부하고 싶습니다.

0

52

2

Rust는 어떻게 컴파일 타임에 dangling reference를 막나요?

0

70

2

강의 추가 계획 질문

0

76

2

메모리 안전성에 대한 질문

0

71

1

소유권 이전과 관련된 질문입니다

0

148

2

&r1 을 써야하는지 r1을 써야하는지?

1

120

1

임대값 수명에 대한 질문

1

122

1

러스트로 파이썬 패키지 만들기 실습을 해보면 에러가 발생합니다

1

197

1

튜플 구조체에서 println! 사용시 에러가 발생합니다.

0

166

1

메모리 관리규칙에서 질문드립니다.

1

210

1

튜플과 구조체 차이 설명에 관한 질문

0

377

1

튜플과 배열 강의 4:50에서 벡터 나중에 설명해주신다고 하셨는데

0

193

1

trait를 인자로 받을 때 &impl과 &dyn차이

1

366

2

구조체는 언제나 Heap에 저장되나요??

2

418

2

Lifecycle 강의에서 두 문자열 슬라이스를 비교해 긴 문자열 슬라이스를 리턴하는 것 관련 질문

0

268

1

혹시 어떤 폰트일까요?

0

457

2

build 오류

0

403

1

웹 어플리케이션 개발에도 잘 사용되나요?

1

458

1

임대값의 수명 강의가 재생이 안되고 있습니다~

0

413

3

임대값의 수명에 대한 강의는 언제쯤 볼 수 있을까요?

0

350

2

문자열 리터럴이 너무 어려워요ㅠㅠ

1

556

1