@hongminhee洪 民憙 (Hong Minhee)
@bglbgl gwyng Haskell에도
fromJust
같은 함수가 있는 것과 비슷한 이유가 아닐까 싶습니다. segfault를 내거나 다른 해로운 일이 일어나지 않는 대신 즉시 종료되어 주기는 한다는 점에서 적어도 null 포인터보다는 낫기도 하고요.
@kroisse크로이세
@bglbgl gwyng 네, 그런데
fromJust
보다 Option::unwrap()
이 훨씬 많이 쓰인다는 느낌이 있습니다. 🤔
If you have a fediverse account, you can reply to this note from your own instance. Search https://hackers.pub/ap/notes/0197bbe0-9d6d-712d-9158-5b3de821ef9b on your instance and reply to it.
@hongminhee洪 民憙 (Hong Minhee)
@bglbgl gwyng
@kroisse크로이세 직접적인 이유는 아니겠지만 저희가
Option::unwrap()
떡칠된 코드를 많이 보게 되는 건 (또는 반대로 과하게 Option/Result의 스택이 켜켜이 쌓여있는 걸 보게 되는 건) 러스트에 try-catch
가 없어서 그런거라고 생각합니다. 분명 예외적인 상황이라 일반적으로는 exception raise 됐을 만한 상황에서도 많은 함수들이 유유히 None
을 내놓고 콜러의 처분을 기다리니 아무래도 unwrap
에 손이 잘 나가는 거 아닌가 싶네요.
이와 다르게 하스켈에서는 함수가 Nothing
이나 Left e
를 내놓을 땐 "비록 콜러가 원하는 바를 이루지는 못했지만 예산 가능한 시나리오"를 의미하는 경우가 많아 fromJust
를 쓰려다가도 한번 더 생각하게 되는거 같구요.