데브허브 | DEVHUB | Understanding the Never Type in RustUnderstanding the Never Type in Rust
- Rust의 'never type'은
!로 표현되며, 해당 코드가 값을 생성하지 않고 실행을 계속하지 않음을 보장합니다. 이러한 함수를 '발산 함수(diverging functions)'라고 합니다. 🚫
- 이 타입은 프로그램에서 복귀 불가능한 부분을 나타내며, Rust 개발자들은
panic!과 같은 상황에서 의식하지 못해도 이미 사용하고 있을 가능성이 높습니다. 🤯
! 타입이 없다면, Rust 컴파일러는 완료되지 않는 표현식의 타입을 결정하는 데 어려움을 겪을 것이며, !는 이를 명시적으로 처리하여 타입 추론 문제를 해결합니다. 🤔
! 타입은 값을 생성하지 않기 때문에 어떤 타입으로든 간주될 수 있습니다. 이는 match 표현식과 같이 여러 브랜치가 다른 타입을 가질 때 (예: i32와 !) 전체 표현식의 타입을 일관되게 유지하는 데 핵심적인 역할을 합니다. 🔄
panic!, 무한 루프, 프로세스 종료, 치명적인 오류와 같은 상황을 타입 안전하게 처리할 수 있도록 돕습니다. 🛡️
- 궁극적으로
! 타입은 Rust가 타입 시스템의 무결성을 훼손하지 않으면서 값을 반환하지 않는 코드 경로를 타입 검사할 수 있도록 존재합니다. ✅