Programming

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

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

 

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

 

Rust의 함수와 소유권

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

Call by Value 함수 호출:


기본적으로 Rust 함수의 매개변수는 값에 대한 소유권을 가집니다. 
매개변수로 전달된 값은 호출된 함수 내에서 새로운 변수로 소유권이 이전됩니다. 함수 내에서 해당 값에 대한 변경은 호출된 함수의 범위 내로 제한됩니다. 호출자의 변수는 함수 호출 이후에도 그대로 유지됩니다.
 

fn add_one(x: i32) -> i32 {
    x + 1
}

fn main() {
    let num = 5;
    let result = add_one(num);
    println!("Result: {}", result); // Result: 6
    println!("num: {}", num); // num: 5 (변경되지 않음)
}


* (주의)  마지막 ` x + 1` 은   return 값으로 `;` 를 붙이지 않습니다.

다음과 같이 함수 add_one() 에 입력 받은 값을 return 하는 형식이 기존 언어들과 유사하게 보입니다.

fn add_one(x: i32) -> i32 {
    let result = x + 1;
    result
}

fn main() {
    let num =5;
    let result = add_one(num);
    println!(" num : {} -> {} ", num, result);
}



728x90
반응형