Result 회복
잘못된 입력은 종료가 아니라 다음 반복으로 보낸다
parse가 반환한 Result를 match로 나누면 숫자는 게임 판정으로 보내고, 숫자가 아닌 입력은 continue로 조용히 건너뛴다.
Ok num
문자열이 u32로 변환되어 guess에 들어간다.
Err any
에러 내용은 쓰지 않고 다음 입력을 받는다.
loop
게임은 정답을 맞힐 때까지 계속된다.
read_line
입력 문자열 확보
사용자의 한 줄 입력이 guess 문자열에 들어온다.
trim parse
숫자 변환 시도
공백을 제거한 뒤 u32 변환 결과를 Result로 받는다.
Ok
cmp로 판정
정답보다 작은지, 큰지, 같은지 비교한다.
Err
continue로 회복
프로그램을 종료하지 않고 새 추릿값을 요청한다.
처리 방식 동작 게임 UX
expect Err가 나오면 즉시 panic으로 종료된다. 오타 한 번에 게임이 끝난다.
match Ok 변환된 숫자를 새 guess 값으로 바인딩한다. 정상 입력은 기존 비교 흐름을 그대로 탄다.
match Err 에러 값을 무시하고 loop의 다음 반복으로 간다. 숫자가 아닌 입력을 자연스럽게 다시 시도한다.
에러는 값
Result를 match하면 실패도 프로그램 흐름 안에서 다룰 수 있다.
밑줄 패턴
Err 내부 정보가 필요 없으면 밑줄로 모든 에러를 받는다.
loop와 궁합
continue는 현재 시도를 버리고 안전하게 다시 입력받게 한다.