0
0
Rustprogramming~20 mins

Match overview in Rust - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Rust Match Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of this Rust match expression?
Consider the following Rust code snippet. What will it print when run?
Rust
let number = 3;
match number {
    1 => println!("One"),
    2 | 3 | 5 | 7 | 11 => println!("This is a prime number"),
    13..=19 => println!("A teen number"),
    _ => println!("Something else"),
}
AThis is a prime number
BOne
CA teen number
DSomething else
Attempts:
2 left
๐Ÿ’ก Hint
Look at the pattern that matches the value 3.
โ“ Predict Output
intermediate
2:00remaining
What does this Rust match with tuple print?
Given this Rust code, what is the output?
Rust
let pair = (0, -2);
match pair {
    (0, y) => println!("First is zero and second is {}", y),
    (x, 0) => println!("First is {} and second is zero", x),
    _ => println!("No zeros"),
}
ANo zeros
BFirst is 0 and second is zero
CFirst is zero and second is -2
DFirst is -2 and second is zero
Attempts:
2 left
๐Ÿ’ก Hint
Check which pattern matches the tuple (0, -2).
๐Ÿ”ง Debug
advanced
2:00remaining
What error does this Rust match code produce?
This Rust code snippet tries to match a value but has a problem. What error will the compiler show?
Rust
let x = 5;
match x {
    1 => println!("One"),
    2 => println!("Two"),
    3 => println!("Three"),
}
Aerror: non-exhaustive patterns: `4..=i32::MAX` not covered
Berror: mismatched types
CNo error, compiles fine
Derror: expected expression, found keyword `match`
Attempts:
2 left
๐Ÿ’ก Hint
Rust requires match expressions to cover all possible values.
๐Ÿง  Conceptual
advanced
2:00remaining
Which match arm will be chosen for this Rust code?
What will the following Rust code print?
Rust
let value = Some(10);
match value {
    Some(x) if x > 5 => println!("Greater than five: {}", x),
    Some(x) => println!("Less or equal to five: {}", x),
    None => println!("No value"),
}
ACompilation error due to if guard
BLess or equal to five: 10
CNo value
DGreater than five: 10
Attempts:
2 left
๐Ÿ’ก Hint
Check the if guard condition in the first arm.
โ“ Predict Output
expert
3:00remaining
What is the output of this nested match in Rust?
Analyze this Rust code and determine what it prints.
Rust
enum Color {
    Red,
    Green,
    Blue,
}

let color = Color::Green;
match color {
    Color::Red => println!("Red"),
    Color::Green => match color {
        Color::Green => println!("Green inside"),
        _ => println!("Other inside"),
    },
    Color::Blue => println!("Blue"),
}
AGreen
BGreen inside
COther inside
DCompilation error due to unreachable pattern
Attempts:
2 left
๐Ÿ’ก Hint
Look at the nested match inside the Color::Green arm.