Blocks and Scopes

Blocks

A block in Rust contains a sequence of expressions, enclosed by braces {}. Each block has a value and a type, which are those of the last expression of the block:

  1. fn main() {
  2.     let z = 13;
  3.     let x = {
  4.         let y = 10;
  5.         println!("y: {y}");
  6.         z - y
  7.     };
  8.     println!("x: {x}");
  9. }

If the last expression ends with ;, then the resulting value and type is ().

This slide and its sub-slides should take about 5 minutes.

  • You can show how the value of the block changes by changing the last line in the block. For instance, adding/removing a semicolon or using a return.