Option<T> models absence (None) or presence (Some). Result<T, E> models success (Ok) or failure (Err)—Rust's alternative to null and exceptions.
Option
fn maybe() -> Option<i32> { Some(42) }
Result
fn parse_n(s: &str) -> Result<i32, std::num::ParseIntError> {
s.parse()
}
Important interview questions and answers
- Q: Option vs null?
A: Compiler forces handling None—no silent null dereference.
Self-check
- What variants does Result have?
- When use Option vs Result?
Pitfall: Do not unwrap() in production paths—handle None and Err or propagate with ?.
Interview prep
- Option vs Result?
Optionmodels optional values (Some/None);Resultmodels recoverable errors (Ok/Err).