条件语句
在 Sui 的 Move 中,条件结构是常见的 if ... else ... 表达式。有几种使用 if ... else ... 表达式的方法。
单个 if 表达式
if (a > b) {
c = a + b;
d = a - b;
};
如果 true 分支仅包含一行,可以简化为:
if (a > b) c = a + b;
带有 else 的 if 表达式
if (a > b) {
c = a + b;
d = a - b;
} else {
e = a + 1;
};
还有不带大括号的简化版本:
if (a > b) c = a + b else e = a + 1;
多分支表达式
if (a < 0) {
b = b + 5;
} else if (a < 10) {
b = b + 10;
};
产生值 条件表达式可以产生值:
let x: u64 = if (a > b) c else d;
在这种情况下,表达式的“返回”值(c 和 d)的类型必须与接收器(x: u64)的类型相同。
else 分支是必要的,如果缺少 else 分支,我们将得到类型不兼容的错误,因为缺少的 else 分支默认为 () 而不是 u64。
如果分支中有多行:
let x: u64 = if (a > b) {
c = a + b;
c + 1
} else {
d = a - b;
d + 1
};
您可能已经注意到,每个分支的最后一行没有以 ; 结尾。这类似于函数中的返回值。