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.