match

値によって処理を分岐します。多くの分岐がある場合に if / else if より読みやすくなります。

基本

OnBoot => {
    match save.好感度 {
        0 => {
            湊: はじめまして。
        }
        1 | 2 => {
            湊: 少し仲良くなりましたね。
        }
        _ => {
            湊: よく来てくれますね。
        }
    }
}

_ はワイルドカードで、どのパターンにも一致しない場合に実行されます。

複数のパターン

| で複数の値をまとめられます。

OnBoot => {
    match now.曜日 {
        0 | 6 => {
            湊: 今日は休日ですね。
        }
        _ => {
            湊: 今日は平日ですね。
        }
    }
}

文字列のmatch

数値だけでなく文字列にも使えます。

OnBoot => {
    match save.天気 {
        "晴れ" => {
            湊: いい天気ですね。
        }
        "雨" => {
            湊: 雨ですね。
        }
        _ => {
            湊: 今日はどんな天気ですか?
        }
    }
}

matchとifの使い分け

単一の値との比較が多い場合は match、範囲の比較(>= など)が必要な場合は if / else if が向いています。