📌 "The Rust Programming Language"를 읽고 남긴 기록
Reference란 포인터와 같이 데이터의 위치를 가리킨다. 변수를 직접 전달하는 것과 달리, reference를 이용해 함수를 호출하면 값의 owner가 변하지 않고, 이러한 동작을 borrowing이라 한다.
fn main() {
let mut s1 = String::from("This is string");
let s2 = &s1;
let s3 = &s1;
println!("{}, {}", s2, s3);
let s4 = &mut s1;
println!("{}", s4);
// println!("{}, {}", s2, s3);
}
코드에서 더 이상 immutable reference가 사용되지 않으므로, rust는 mutable reference를 허용한다. 만약 주석을 한 부분이 코드에 포함된다면, mutable reference와 immutable reference가 양립할 수 없다는 규칙에 위배되므로 컴파일 오류가 발생된다.