[rust] 4. Understanding Ownership - 2

Jiseok Son·2023년 9월 12일
0

📌 "The Rust Programming Language"를 읽고 남긴 기록

1. Referenses and Borrowing

Reference란 포인터와 같이 데이터의 위치를 가리킨다. 변수를 직접 전달하는 것과 달리, reference를 이용해 함수를 호출하면 값의 owner가 변하지 않고, 이러한 동작을 borrowing이라 한다.

2. Reference rule

  • mutable reference와 immutable reference는 양립할 수 없다.
  • mutable reference가 존재한다면, 한번에 하나만 존재할 수 있다.
  • immutable reference가 존재한다면, 여러 개 존재할 수 있다.
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가 양립할 수 없다는 규칙에 위배되므로 컴파일 오류가 발생된다.

profile
make it work make it right make it fast

0개의 댓글