SplitScript reference / Language / match

match

keyword

match value { pattern => expression }

Exhaustively matches a value.

match supports enum payloads, optional None/Some(value) patterns, iterator End/Item(value) patterns, fallible Err(error)/Ok(value) patterns, string, character, integer, boolean, and file-version literals, guards, and a wildcard. String patterns compare contents, not WebAssembly GC identities. Enum and wrapper matches must cover every state; open-ended literal domains require _; guarded arms do not establish coverage.

Examples

Handle every enum variant

let label = match mode {
    Mode.Menu => "Menu",
    Mode.Playing => "Playing"
}

Dispatch on exact string contents

return match name {
    "game.exe" => "full game",
    "game-demo.exe" => "demo",
    _ => "unsupported",
}