
Pattern Matching
match 표현식, if let, while let, destructuring, guards, @ bindings, 완전성(exhaustiveness)
18 면접 질문·
Mid-Level
1Rust에서 기본적인 match 표현식의 올바른 구문은 무엇입니까?
1
Rust에서 기본적인 match 표현식의 올바른 구문은 무엇입니까?
답변
Rust의 match 표현식은 match 키워드 뒤에 분석할 값을 쓰고, 그다음 중괄호 안에 쉼표로 구분된 여러 암(pattern)을 넣습니다. 각 암은 pattern 뒤에 =>와 실행할 코드를 둡니다. 이 구문 덕분에 컴파일러는 가능한 모든 경우가 처리되었는지 검증할 수 있습니다.
2match에서 남은 모든 값을 캡처하려면 어떤 pattern을 사용해야 하나요?
2
match에서 남은 모든 값을 캡처하려면 어떤 pattern을 사용해야 하나요?
답변
_ (underscore) pattern은 Rust의 catch-all pattern입니다. 값을 변수에 바인딩하지 않고 모든 값과 매칭됩니다. 또는 변수 이름(예: other 또는 n)을 사용하면 값을 캡처할 수 있습니다. 값을 사용하지 않을 때는 의도가 명확하게 드러나기 때문에 _ 가 선호됩니다.
3if let은 match와 비교하여 어떻게 동작하나요?
3
if let은 match와 비교하여 어떻게 동작하나요?
답변
if let은 하나의 pattern만 처리하고 나머지는 무시하는 match의 단축 구문입니다. _ catch-all arm을 포함한 전체 match를 작성하는 대신, 특정 경우만 중요할 때 if let을 사용하면 값을 간결하게 추출할 수 있습니다. Option과 Result와 함께 사용할 때 특히 유용합니다.
4
Rust pattern matching의 맥락에서 exhaustiveness란 무엇인가요?
5
pattern match에서 tuple을 어떻게 구조 분해하나요?
+15 면접 질문
기타 Rust 면접 주제
Rust 기초
Junior
25개 질문Ownership & Borrowing
Junior
22개 질문Structs & Enums
Junior
20개 질문에러 처리
Junior
18개 질문컬렉션
Junior
20개 질문모듈과 패키지
Junior
18개 질문Traits
Mid-Level
22개 질문Generics
Mid-Level
20개 질문Lifetimes
Mid-Level
20개 질문Iterators & Closures
Mid-Level
22개 질문Smart Pointers
Mid-Level
22개 질문Concurrency Basics
Mid-Level
20개 질문async/await
Mid-Level
22개 질문Testing
Mid-Level
18개 질문Cargo & Ecosystem
Mid-Level
18개 질문매크로
Mid-Level
20개 질문Serde와 직렬화
Mid-Level
20개 질문Unsafe Rust
Senior
20개 질문고급 트레잇
Senior
22개 질문고급 lifetime
Senior
20개 질문Type System
Senior
20개 질문Tokio & Async I/O
Senior
22개 질문성능 최적화
Senior
20개 질문Memory Management
Senior
20개 질문Web Frameworks
Senior
22개 질문Database Integration
Senior
20개 질문Rust 디자인 패턴
Senior
20개 질문