enum

열거형으로 경우의 수를 묶기

열거형은 가능한 값의 형태를 하나의 타입으로 묶고, 각 배리언트가 서로 다른 데이터를 가질 수 있게 합니다.

배리언트 선택 IP 주소, 메시지, 상태처럼 경우가 정해져 있고 각 경우의 데이터 모양이 다르면 enum이 구조체보다 자연스럽습니다.

Option<T>는 값이 있을 수도 없을 수도 있음을 타입으로 드러내어 null 사용에서 생기는 착각을 줄입니다.

배리언트

하나의 enum 타입 안에서 서로 다른 경우 이름을 정의합니다.

데이터 포함

각 배리언트는 문자열, 숫자, 구조체처럼 필요한 데이터를 직접 품을 수 있습니다.

메서드

구조체처럼 impl 블록을 붙여 enum 값에 동작을 연결할 수 있습니다.

Option<T>

Some(T)와 None으로 값의 부재를 명시적으로 처리하게 합니다.

enum 설계 순서

Option의 의미
1
나열

도메인에서 가능한 상태나 메시지를 먼저 적습니다.

2
부착

각 상태에 필요한 데이터를 배리언트에 붙입니다.

3
처리

match나 if let으로 모든 경우를 읽을 위치를 정합니다.

열거형은 데이터가 여러 모양 중 하나라는 사실을 타입 자체에 기록해 처리 누락을 줄입니다.