For the complete documentation index, see llms.txt. This page is also available as Markdown.

🔀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 + "!")
}
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

}

Last updated