복구가 가능한가? = Result 반환 호출자는 실패를 염두에두고 Ok랑 Err를 알아서 핸들링 복구가 불가능한가? = panic! 호출자는 성공을 전제로 호출하고 실패하면 프로그램 종료
하스켈이랑 똑같다
복구가 불가능하다는 말이 뭔말임?
호출자가 에러를 핸들링할수 없다는거임
예를들어 Vec<T>에 인덱스로 참조할때 리턴타입이 &T인데 범위를 벗어나면 panic임
반환된 코드를 바탕으로 호출자가 프로그램을 종료시키는 거랑 호출된 코드가 panic을 일으키는 거랑 무슨 차이임? 둘다 핸들링 할 수 없는 경우 아님?
그건 그 판단을 호출자가 하냐 호출된 함수에서 하냐의 차이지
난 그 판단을 누가 해야할지 모르겠다
그건 API 차원에서 고려해야할 문제다
panic : 버그 / Result : 버그가 아니라 기능
ㄴ 이거 맞말인듯
애초에 panic은 안일어난다는 전제하에 쓰는거니까 나는게 버그가 맞다
그럴 때 쓰는게 assert아니냐?
assert도 panic이랑 똑같은데
https://doc.rust-lang.org/1.5.0/std/macro.assert!.html
아그렇구나 ㄱㅅ
너말대로 assert도 많이 씀 ㅇㅇ