Programming

[RUST언어] RUST 언어의 시작 (3) - 함수 선언하기- call by reference

IT오이시이 2023. 5. 16. 16:38
728x90

 

RUST 언어의 시작 (3) - 함수 선언하기- call by reference

 

Rust의 함수와 소유권

Rust에서 함수 호출 시 매개변수의 전달 방식은 기본적으로 "전달되는 값의 소유권"에 따라 결정됩니다. Rust는 소유권 시스템을 통해 메모리 안전성을 보장하며, 이에 따라 값이 함수에 전달될 때 소유권이 어떻게 처리되는지가 결정됩니다.

Call by Reference 함수 호출:

  • Rust에서는 불변참조(Immutable References) 과 가변참조(Mutable References) 두 가지 형태의 참조를 사용하여 Call by Reference를 구현합니다.
  • 불변 참조(&T)는 해당 값에 대한 읽기 전용 접근을 제공합니다.
  • 가변 참조(&mut T)는 해당 값에 대한 가변 접근을 제공하며, 변경이 가능합니다.
  • 참조자를 통해 전달된 값은 소유권이 이전되지 않으며, 호출된 함수 내에서 해당 값을 참조할 수 있습니다.
  • 참조자를 통해 값이 변경될 경우, 변경은 호출자의 변수에도 영향을 미칩니다.

 

fn add_one(x: &mut i32) {
    *x += 1;
}

fn main() {
    let mut num = 5;
    add_one(&mut num);
    println!("num: {}", num); // num: 6 (변경됨)
}

 

위의 예시에서 add_one 함수는 &mut i32 타입의 가변 참조자를 매개변수로 받습니다. 함수 내에서 해당 참조자를 역참조하여 값을 변경할 수 있으며, 이로 인해 호출자의 num 변수의 값도 변경됩니다.

728x90
반응형