Reference Validity

Rust enforces a number of rules for references that make them always safe to use. One rule is that references can never be null, making them safe to use without null checks. The other rule weā€™ll look at for now is that references canā€™t outlive the data they point to.

fn main() {
    let x_ref = {
        let x = 10;
        &x
    };
    println!("x: {x_ref}");
}
This slide should take about 3 minutes.
  • This slide gets students thinking about references as not simply being pointers, since Rust has different rules for references than other languages.

  • Weā€™ll look at the rest of Rustā€™s borrowing rules on day 3 when we talk about Rustā€™s ownership system.

More to Explore

  • Rustā€™s equivalent of nullability is the Option type, which can be used to make any type ā€œnullableā€ (not just references/pointers). We havenā€™t yet introduced enums or pattern matching, though, so try not to go into too much detail about this here.