組み込み関数

badge

if

ifは条件に応じて処理を変える関数です。

result: Option Int = if! Bool.sample!(), do:
    log "True was chosen"
    1
print! result # None (または1)

.sample!()は集合の値をランダムに返します。もし戻り値が真ならば、print! "True"が実行されます。 条件が偽であった際の処理も指定できます。2つ目のdoブロックはelseブロックと呼ばれます。

result: Nat = if Bool.sample!():
    do:
        log "True was chosen"
        1
    do:
        log "False was chosen"
        0
print! result # 1 (または0)

処理が1行ならば、インデントを省略できます。

result = if Bool.sample!():
    do 1
    do 0

for

繰り返し行う処理を書くときはforが使えます。

match_s(ss: Iterator(Str), pat: Pattern): Option Str =
    for ss, s ->
        if pat.match(s).is_some():
            break s