Rust 구조체 분해하기 (패턴 매칭 사용)

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 Rust 에서 struct를 분해하는 방법을 배웁니다. 이를 통해 패턴 매칭을 사용하여 구조체의 개별 필드와 그 값을 추출할 수 있습니다.

참고: 실습에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어 main.rs를 사용하고 rustc main.rs && ./main으로 컴파일 및 실행할 수 있습니다.

구조체

마찬가지로, struct는 다음과 같이 분해될 수 있습니다.

fn main() {
    struct Foo {
        x: (u32, u32),
        y: u32,
    }

    // 구조체 내 값을 변경하여 결과를 확인해 보세요
    let foo = Foo { x: (1, 2), y: 3 };

    match foo {
        Foo { x: (1, b), y } => println!("x 의 첫 번째 값은 1, b = {}, y = {} ", b, y),

        // 구조체를 분해하고 변수 이름을 바꿀 수도 있습니다.
        // 순서는 중요하지 않습니다.
        Foo { y: 2, x: i } => println!("y 는 2, i = {:?}", i),

        // 일부 변수를 무시할 수도 있습니다.
        Foo { y, .. } => println!("y = {}, x 는 신경 쓰지 않습니다", y),
        // 이것은 오류를 발생시킵니다: 패턴이 필드 `x` 를 언급하지 않습니다
        //Foo { y } => println!("y = {}", y),
    }

    let faa = Foo { x: (1, 2), y: 3 };

    // 구조체를 분해하기 위해 match 블록이 필요하지 않습니다.
    let Foo { x: x0, y: y0 } = faa;
    println!("외부: x0 = {x0:?}, y0 = {y0}");
}

요약

축하합니다! 구조체 실습을 완료했습니다. LabEx 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.