`return` 표현식

return 표현식

지금 실행 중이던 함수를 벗어나 값을 돌려주고 싶을 때 return 표현식을 써요. 함수 중간에서 "여기서 결과를 내고 끝내자" 하고 명시적으로 탈출하는 문법이에요.

출처: Rust Reference - return expressions

본문

return 표현식은 키워드 return으로 표시해요.

구문 (Syntax)

ReturnExpression → return Expression?

return 표현식을 평가하면 이런 일이 벌어져요.

  1. 인자(argument)를 현재 함수 호출의 지정된 출력 위치로 이동(move)시켜요.
  2. 현재 함수의 활성화 프레임(activation frame)을 파괴해요.
  3. 제어를 호출자(caller)의 프레임으로 넘겨요.

예를 들어 두 수 중 큰 값을 돌려주는 함수를 보면요.

fn max(a: i32, b: i32) -> i32 {
    if a > b {
        return a;
    }
    return b;
}

a > b가 참이면 return a에서 바로 a를 돌려주고 함수가 끝나요. if 조건이 거짓이면 마지막의 return b로 흐르고요.

그리고 return 표현식은 발산(diverging) 을 나타내요. 발산하는 식의 타입은 !(never 타입)이에요. 함수의 끝에 도달할 수 없는 경우처럼, 제어가 다음으로 넘어가지 않는다는 뜻이에요.

더 알아보기 (Learn more)