매개변수와 반환 타입

  • 함수의 선언 위치는 상관없음. 호출하는 측에서 볼 수있는 스코프 내에 존재하면 됨
  • 매개변수의 타입을 반드시 명시해야 함
  • 반환 타입은 화살표(->)로 표현함
  • 반환은 return 구문과 표현식 둘 다 가능
    • fn example() -> i32 { ... return result; }
    • fn example() -> i32 { x * 2 }
fn main() {
    let result_1 = divide_three(13);
    let result_2 = plus_one(5);
}

fn divide_three(x: i32) -> f64 {
    x as f64 / 3.0
}

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

구문(Statement)과 표현식(Expression)

  • 구문

    • 실행 가능한 최소 단위의 코드
    • 단독으로 실행 가능
    • 보통 세미콜론(;)으로 끝나며 결과를 반환하지 않음
    • let x = 5;
  • 표현식

    • 값을 평가하고 결과를 반환하는 코드 조각
    • 표현식에 의한 결과는 다른 표현식에서 사용 가능
    • 함수의 인수로 전달하거나 반환값으로 사용 가능
    • let y = x * 2; 에서 x * 2 가 표현식
  • 구문과 표현식은 서로 다른 개념이 아니라, 구문이 표현식을 포함하는 개념이다

fn main() {
    let x = {
        let y = 5;
        y * 3   // 세미콜론을 추가하면 표현식이 아닌 구문이 되므로 값을 반환하지 않게 된다. 따라서 변수 x에 아무값도 바인딩되지 않는다.
    };
}

'Rust' 카테고리의 다른 글

[Rust] 소유권  (0) 2024.04.24
[Rust] 제어문 : 분기 처리와 반복  (0) 2024.04.16
[Rust] 데이터 타입 : 복합 (Compound)  (0) 2024.04.15
[Rust] 데이터 타입 : 스칼라 (Scalar)  (0) 2024.04.15
[Rust] 불변성과 섀도잉  (0) 2024.03.31

+ Recent posts