enum variant
서로 다른 상태를 하나의 타입 안에 명확히 이름 붙여 담는다.
null 대신 Some과 None을 쓰면 값이 없을 가능성을 match나 if let에서 반드시 다루게 된다.
서로 다른 상태를 하나의 타입 안에 명확히 이름 붙여 담는다.
값이 없을 수 있다는 사실을 타입 시그니처에서 바로 드러낸다.
match는 Some과 None을 빠뜨리면 컴파일 단계에서 알려준다.
Option을 쓰면 실패 가능성을 문서나 주석에 숨기지 않고, 호출자가 코드로 처리해야 하는 계약으로 만든다.