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
반응형
'Programming' 카테고리의 다른 글
Rust 기초 알기 - 1.3 Rust의 응용 분야와 사용 사례 (0) | 2023.05.16 |
---|---|
Rust 기초 알기 - 1.2 Rust의 주요 특징과 장점 (4) | 2023.05.16 |
Rust 기초 알기 - 1.1.Rust의 역사와 배경 (3) | 2023.05.16 |
[RUST언어] RUST 언어의 시작 (3) - 함수 선언하기- call by value (4) | 2023.05.16 |
[RUST언어] RUST 언어의 시작 (3) - 함수 선언하기 (3) | 2023.05.16 |
[RUST언어] RUST 언어의 시작 (2) - 변수 타입의 종류 (3) | 2023.05.16 |
[RUST언어] RUST 언어의 시작 (2) - 변수의 종류 (4) | 2023.05.16 |