40 lines
748 B
Markdown
40 lines
748 B
Markdown
Switch Expression
|
|
=================
|
|
|
|
{{#include ../links.md}}
|
|
|
|
Like [`if`], [`switch`] also works as an _expression_.
|
|
|
|
```admonish tip.small "Tip"
|
|
|
|
This means that a [`switch`] expression can appear anywhere a regular expression can,
|
|
e.g. as [function] call arguments.
|
|
```
|
|
|
|
~~~admonish tip.small "Tip: Disable `switch` expressions"
|
|
|
|
[`switch`] expressions can be disabled via [`Engine::set_allow_switch_expression`][options].
|
|
~~~
|
|
|
|
```js
|
|
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);
|
|
}
|
|
```
|