Rust 참조 기본 규칙

mohadang·2023년 1월 21일
0

Rust

목록 보기
8/30
post-thumbnail

Rust의 참조 기본 규칙은 심플하게 4개

1. 단 하나의 변경 가능한 참조 가능

let mut foo = 42 as i32;
let foo_ref1 = &mut foo;
let foo_ref2 = &mut foo;//error

println!("{}", foo_ref1);
println!("{}", foo_ref2);
  • Rust는 데이터 경합의 가능성 때문에 소유된 값을 변경하는 방법이 여러 개 생기는 것을 방지

2. 함수를 사용하면 여러개의 변경 가능한 참조 가능

fn func(item: &mut i32) {
    *item += 1;
}
fn main() {
    let mut foo = 42 as i32;
    func(&mut foo);
    func(&mut foo);
    println!("{}", foo);
}

3. 여러개의 변경 불가능한 참조 가능

let foo = 42 as i32;
let foo_ref1 = &foo;
let foo_ref2 = &foo;

println!("{}", foo_ref1);
println!("{}", foo_ref2);

4. 기타

  • 참조는 그 소유자 보다 더 오래 살 수 없다.
    • 참조는 항상 유효한 메모리를 가리킨다.
  • 참조의 참조 가능
fn main() {
    let a = 32_i32;
    let b = &a;
    let c = &b;
    let d = &&b;
    println!("{}", c);
    println!("{}", d);
}

참고

https://github.com/utilForever/2022-Korea-Rust-Backend

profile
mohadang

0개의 댓글