Switch Expression

Like if, switch also works as an expression.

Tip

This means that a switch expression can appear anywhere a regular expression can, e.g. as function call arguments.

Tip: Disable switch expressions

switch expressions can be disabled via Engine::set_allow_switch_expression.

let x = switch foo { 1 => true, _ => false };

func(switch foo {
    "hello" => 42,
    "world" => 123,
    _ => 0
});

// The above is somewhat equivalent to:

let x = if foo == 1 { true } else { false };

if foo == "hello" {
    func(42);
} else if foo == "world" {
    func(123);
} else {
    func(0);
}