Hacker News new | ask | show | jobs
by selfmodruntime 3 days ago
It is different. Handling `None` in a way that crashes your program is well defined in a Rust function. If you're using `unwrap` or `expect`, the program will crash with a stack trace and an error, instead of running into undefined behavior.
2 comments

Yes. Its also explicit instead of implicit. In rust (and typescript, swift, haskell and others), you have to opt-in to nullability. By default, functions can't take a null in place of a non-nullable value. And whether a function accepts a T or an Option<T> is part of the signature.
While it is undefined behavior on the C standard level it a null pointer dereference is guaranteed to trap on most platforms.