πWhen-Cases
When-Case syntax
when <expr> @ <Return Type Of Below exprs> {
is <expr> -> <expr>
is <expr> -> <expr>
is <expr> -> <expr>
default -> <expr>
}A when-case is equivalent to a switch case, except:
when-cases are expressions, not statements
The
defaultcase is requiredNew scopes cannot be used on the left side of the arrow. Only expressions can.
Working Example
package main
import "fmt" as fmt
fun main(): Unit {
let language = "Gauntlet"
let reaction = when language @ String {
is "Gauntlet" -> "smiled"
is "Java" -> "threw up"
is "C++" -> "ripped my hair out"
is "PHP" -> "died"
default -> "laughed"
}
fmt.println("When I found out I was required to program in " + language + ", I " + reaction + "!")
}package main
import fmt "fmt"
func main() {
language := "Gauntlet"
reaction := (func() string {
switch language {
case "PHP":
{
return "died"
}
case "C++":
{
return "ripped my hair out"
}
case "Java":
{
return "threw up"
}
case "Gauntlet":
{
return "smiled"
}
default:
{
return "laughed"
}
}
})()
fmt.Println("When I found out I was required to program in " + language + ", I " + reaction + "!")
// Eliminates any 'unused variable' errors
_, _ = language, reaction
}
When I found out I was required to program in Gauntlet, I smiled!Last updated