rust-by-practice/en/src/basic-types/statements-expressions.md

1.1 KiB

Statements and Expressions

Examples

fn main() {
    let x = 5u32;

    let y = {
        let x_squared = x * x;
        let x_cube = x_squared * x;

        // This expression will be assigned to `y`
        x_cube + x_squared + x
    };

    let z = {
        // The semicolon suppresses this expression and `()` is assigned to `z`
        2 * x;
    };

    println!("x is {:?}", x);
    println!("y is {:?}", y);
    println!("z is {:?}", z);
}

Exercises

  1. 🌟🌟
// make it work with two ways
fn main() {
   let v = {
       let mut x = 1;
       x += 2
   };

   assert_eq!(v, 3);

   println!("Success!")
}
  1. 🌟

fn main() {
   let v = (let x = 3);

   assert!(v == 3);

   println!("Success!")
}
  1. 🌟

fn main() {
    let s = sum(1 , 2);
    assert_eq!(s, 3);

    println!("Success!")
}

fn sum(x: i32, y: i32) -> i32 {
    x + y;
}

You can find the solutions here(under the solutions path), but only use it when you need it