Option<T> in Rust

Dec 02, 2024

In other languages such as in C, you often use a pointer with NULL to indicate that it is not pointing anything. It is not safe to refer it without NULL check.

In Rust, we can use Option<>. NULL-check is enforced by this type.

Option<T> allows you to set either a value Some(T) or None which is NULL in C.

Setting a value

You can set a value to Option<T> type by using Some(). Use None to indicate you have no value with None.

let o = MyObject {value:256};
let p = Some(o);
let q: Option<MyObject> = None;

Non-NULL

There is a unique syntax to let a value to a variable and execute a block only when that was possible.

if let Some(else_branch) = &stmt.else_branch {
    self.resolve_statement(else_branch);
}