条件语句
if
表达式用于指定只有当某个条件为真时才执行特定代码。例如:
script {
fun example() {
if (x > 5) x = x - 5
}
}
条件必须是 bool
类型的表达式。
if
表达式可以包含可选的 else
子句,用于指定条件为假时要执行的另一个表达式。
script {
fun example() {
if (y <= 10) y = y + 1 else y = 10
}
}
只会执行”真”分支或”假”分支中的一个,不会同时执行。每个分支可以是单个表达式或表达式块。
条件表达式可以产生值,因此 if
表达式可以有结果值。
script {
fun example() {
let z = if (x < 100) x else 100;
}
}
真假分支中的表达式必须具有兼容的类型。例如:
script {
fun example() {
// x 和 y 必须是 u64 整数
let maximum: u64 = if (x > y) x else y;
// 错误!分支类型不同
let z = if (maximum < 10) 10u8 else 100u64;
// 错误!分支类型不同,因为默认假分支是 () 而不是 u64
if (maximum >= 10) maximum;
}
}
如果未指定 else
子句,假分支默认为单位值。以下两种写法是等价的:
script {
fun example() {
if (condition) true_branch // 隐含默认值:else ()
if (condition) true_branch else ()
}
}
通常,if
表达式会与表达式块结合使用。
script {
fun example() {
let maximum = if (x > y) x else y;
if (maximum < 10) {
x = x + 10;
y = y + 10;
} else if (x >= 10 && y >= 10) {
x = x - 10;
y = y - 10;
}
}
}
条件语句语法
if表达式 → if ( 表达式 ) 表达式 else子句可选> else 子句 → else 表达式