Single Line Arm
The following example demonstrates how a type can be matched on and its output is assigned to a variable. The assignment to a variable is optional.
let number = 5;
let result = match number {
0 => 10,
1 => 20,
5 => 50,
6 | 7 => 60,
catch_all => 0,
};
The left side of the arrow =>
is the pattern that we are matching on and the right side of the arrow =>
is the logic that we want to perform, in this case we are returning a different multiple of 10
depending on which arm is matched.
We check each arm starting from 0
and make our way down until we either find a match on our pattern or we reach the catch_all
case.
The |
operator can be used to produce a pattern that is a disjuction of other patterns.
The catch_all
case is equivalent to an else
in if expressions and it does not have to be called catch_all
. Any pattern declared after a catch_all
case will not be matched because once the compiler sees the first catch_all
it stop performing further checks.