표현식

러스트 프로그램은 (대부분) 여러 개의 구문으로 이루어져 있습니다.

fn main() {
    // 구문
    // 구문
    // 구문
}

러스트에서 구문은 여러 종류가 존재합니다. 가장 일반적인 두 가지는 변수 바인딩 선언, ;이 붙은 표현식입니다.

fn main() {
    // 변수 바인딩
    let x = 5;

    // 표현식;
    x;
    x + 1;
    15;
}

블록 또한 표현식이므로 대입 값으로 사용할 수 있습니다. 블록 내 마지막 표현식은 지역 변수 등의 표현식에 대입됩니다. 블록의 마지막 표현식에 세미콜론이 붙는 경우, 반환값은 () 입니다.

fn main() {
    let x = 5u32;

    let y = {
        let x_squared = x * x;
        let x_cube = x_squared * x;

        // 이 표현식은 `y`에 대입됩니다
        x_cube + x_squared + x
    };

    let z = {
        // 이 표현식은 세미콜론으로 억제되어, `z`에 `()`가 대입됩니다
        2 * x;
    };

    println!("x = {:?}", x);
    println!("y = {:?}", y);
    println!("z = {:?}", z);
}