Result<T, E>
Result 책임 이동 지도
실패 값은 현재 함수가 처리할 수도 있고, 실패 가정을 드러낼 수도
있으며, 호출자에게 그대로 넘길 수도 있다.
누가 결정하나
현재 함수가 복구 방법을 알면 처리하고, 호출자가 더 많은 맥락을 알면
전파한다.
| match |
현재 함수에서 처리Ok와 Err를 직접 나누어 파일 생성,
기본값, 재시도 같은 복구 경로를 작성한다.
|
|---|---|
| expect | 가정 실패를 드러냄성공해야 하는 이유가 분명할 때 패닉 메시지에 그 가정을 남긴다. |
| ? |
호출자에게 전파Err를 즉시 반환하고 필요하면 현재 함수의 에러
타입으로 변환한다.
|
| return | 성공 값 또는 에러성공하면 값이 계속 흐르고 실패하면 현재 정책에 맞게 흐름이 끝난다. |
| 조건 |
반환 타입 일치?는 현재 함수의 반환 타입이 해당 실패 값을 받을
때만 동작한다.
|
전파 조건
Result와 Option은 자동으로 서로 바뀌지
않는다. 실패 타입과 함수 반환 타입을 함께 맞춘다.