소개
이 실험에서는 데이터가 동일한 이름으로 불변하게 바인딩되어 불변 바인딩의 범위가 종료될 때까지 수정할 수 없게 되는 상태를 동결 (freezing) 상태로 설명합니다.
참고: 실험에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어
main.rs파일을 사용하고rustc main.rs && ./main명령어로 컴파일 및 실행할 수 있습니다.
이 실험에서는 데이터가 동일한 이름으로 불변하게 바인딩되어 불변 바인딩의 범위가 종료될 때까지 수정할 수 없게 되는 상태를 동결 (freezing) 상태로 설명합니다.
참고: 실험에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어
main.rs파일을 사용하고rustc main.rs && ./main명령어로 컴파일 및 실행할 수 있습니다.
동일한 이름으로 불변하게 바인딩된 데이터는 동결 (freezing) 됩니다. 동결된 데이터는 불변 바인딩의 범위가 종료될 때까지 수정할 수 없습니다.
fn main() {
let mut _mutable_integer = 7i32;
{
// 불변 `_mutable_integer` 로 그림자화
let _mutable_integer = _mutable_integer;
// 오류! 이 범위에서 `_mutable_integer` 는 동결되었습니다.
_mutable_integer = 50;
// FIXME ^ 이 줄을 주석 처리하세요.
// `_mutable_integer` 가 범위를 벗어납니다.
}
// 정상! 이 범위에서 `_mutable_integer` 는 동결되지 않았습니다.
_mutable_integer = 3;
}
축하합니다! 동결 (Freezing) 실험을 완료했습니다. LabEx 에서 더 많은 실험을 통해 기술을 향상시킬 수 있습니다.