소개
이 실습에서는 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 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.