条件语句
条件语句
功能
条件语句用于根据不同条件执行不同代码。BT 中 if 也是表达式:整个 if 的值由实际执行分支中最后一条语句返回;没有匹配分支时返回 empty。
语法
if condition { value_when_true } elseif other_condition { value_when_other } else { value_when_false }
if
if 后面写条件。条件为真时执行第一个代码块。
score = 72 level = if score >= 60 { 'pass' }
else
else 表示前面的条件都不成立时执行的兜底分支。
result = if score >= 60 { 'pass' } else { 'fail' }
elseif 和 else if
elseif 用于连续判断多个条件;else if 也可以写成嵌套条件。
grade = if score >= 90 { 'A' } elseif score >= 80 { 'B' } else { 'C' }
三元条件表达式
简单二选一可以用 condition ? true_value : false_value,适合短表达式,不适合写复杂业务块。
name = user_name ? user_name : '游客'
match 表达式
功能
match 用于按顺序比较一个表达式的值,并返回第一个命中分支的结果。它适合替代连续的 if / elseif / else 判断。
语法
match expr { pattern => expr, pattern => { statement expr }, pattern => expr, _ => expr }
参数
-
expr:要匹配的表达式,只会先求值一次。 -
pattern:分支模式表达式,按从上到下的顺序与目标值进行相等比较。 -
_:默认分支,当前面都不匹配时返回它的表达式值。
返回值
match 是表达式,命中分支后返回该分支 => 右侧表达式的值;分支右侧写 {} 代码块时返回代码块最后一条语句的值;没有匹配且没有 _ 默认分支时返回 empty。
代码示例
x = 1 result = match x + 1 { 2 => 'a', 3 => 'b', _ => 'c' } // 输出:a print result
x = 1 result = match x + 1 { 2 => { if x == 1 { 'ok' } else { 'no' } }, _ => 'c' } // 输出:ok print result
注意事项
-
match按分支书写顺序匹配,命中后不会继续检查后续分支。 -
_是默认分支,通常放在最后;如果放在前面,后续分支不会再被执行。 - 分支右侧可以是表达式,也可以是
{}代码块;代码块的值由最后一条语句决定。 -
return会直接退出当前函数或脚本,不只是返回当前 match 分支;如果只是想把值交给match,请把该值作为代码块最后一条语句。
真值规则
条件会按 BT 的真值规则判断。常见的假值包括 false、null、empty、0、空字符串、空数组和空对象;其他值通常按真处理。