Gauntlet Documentation
  • 🏠Welcome
  • πŸ…Getting Started
    • 🧠Introduction To Gauntlet
  • ‼️Read before Proceeding
  • ⬇️Installation
  • πŸ‘¨β€πŸ’»VSCode Extension
  • πŸ“šBasics
    • πŸ’¨Running Gauntlet
    • πŸ“„File Setup & Hello World
  • πŸ” Scope Variables
  • πŸ–ΌοΈConstants
  • 🧩Functions
  • ↔️If Statements
  • πŸ”‘Ternary Operator
  • πŸ’ Switch-Case
  • πŸ“©Select-Case
  • ➰Loops
  • πŸ“Structs
  • 🧱Interfaces
  • πŸͺͺAliases
  • πŸ“ŽMethods
  • πŸ¦™Lambdas
  • πŸ•ΈοΈMiscellaneous
  • ⚑Advanced Features
    • πŸ”€When-Cases
    • 🚰Pipes
    • ⁉️Try-Statements
    • 🎭Force-Statements
    • 🌯Wrapper Types
Powered by GitBook
On this page
  • When-Case syntax
  • Working Example
Export as PDF
  1. Advanced Features

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 Unit main() {
  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!
PreviousMiscellaneousNextPipes

Last updated 7 days ago

⚑
πŸ”€