πŸ”€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:

  1. when-cases are expressions, not statements

  2. The default case is required

  3. New 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 + "!")
}

Last updated