当前位置:  首页>> 技术小册>> Rust入门教程

在 Rust 语言中的条件语句是这种格式的:

实例

  1. fn main() {
  2. let number = 3;
  3. if number < 5 {
  4. println!("条件为 true");
  5. } else {
  6. println!("条件为 false");
  7. }
  8. }

在上述程序中有条件 if 语句,这个语法在很多其它语言中很常见,但也有一些区别:首先,条件表达式 number < 5 不需要用小括号包括(注意,不需要不是不允许);但是 Rust 中的 if 不存在单语句不用加 {} 的规则,不允许使用一个语句代替一个块。尽管如此,Rust 还是支持传统 else-if 语法的:

实例

  1. fn main() {
  2. let a = 12;
  3. let b;
  4. if a > 0 {
  5. b = 1;
  6. }
  7. else if a < 0 {
  8. b = -1;
  9. }
  10. else {
  11. b = 0;
  12. }
  13. println!("b is {}", b);
  14. }

运行结果:

  1. b 1

Rust 中的条件表达式必须是 bool 类型,例如下面的程序是错误的:

实例

  1. fn main() {
  2. let number = 3;
  3. if number { // 报错,expected `bool`, found integerrustc(E0308)
  4. println!("Yes");
  5. }
  6. }

虽然 C/C++ 语言中的条件表达式用整数表示,非 0 即真,但这个规则在很多注重代码安全性的语言中是被禁止的。

结合之前章学习的函数体表达式我们加以联想:

  1. if <condition> { block 1 } else { block 2 }

这种语法中的 { block 1 } 和 { block 2 } 可不可以是函数体表达式呢?

答案是肯定的!也就是说,在 Rust 中我们可以使用 if-else 结构实现类似于三元条件运算表达式 (A ? B : C) 的效果:

实例

  1. fn main() {
  2. let a = 3;
  3. let number = if a > 0 { 1 } else { -1 };
  4. println!("number 为 {}", number);
  5. }

运行结果:

  1. number 1

注意:两个函数体表达式的类型必须一样!且必须有一个 else 及其后的表达式块。


该分类下的相关小册推荐:

暂无相关推荐.