The match
statement is a convenient shortcut for cases where a case
statement would be used to
match a value, and give back a result. While it may resemble pattern matching operators in some
other languages it is not fully equivalent, as Golo does not support destructuring.
match
is a great addition to the Golo programmer:
let item = "foo@bar.com" let what_it_could_be = -> match { when item: contains("@") then "an email?" when item: startsWith("+33") then "a French phone number?" when item: startsWith("http://") then "a website URL?" otherwise "I have no clue, mate!" } # prints "an email?" println(what_it_could_be(item))
The values to be returned are specified after a then
keyword that follows a boolean expression to
be evaluated.
Like case
statements, a match
construct needs at least one when
clause and one otherwise
clause.