codecamp

if

if

Rust 提供的 if 语法不是特别复杂,但它比起传统的系统语言更像动态类型语言中提供的 if。接下来让我们谈论它,以确保你掌握 Rust 中 if 的微妙之处。

if 是“分支”特定形式的更一般的概念。这个名字来自于树中的一个分支:在一个决策点有多条路径可以选择,当我们依赖于某个条件可以选择其中一个分支。

if 通常情况是一个选择会有两条路径:

let x = 5;

if x == 5 {
    println!("x is five!");
}

如果我们改变了 x 的值,上面那一行不会打印。更具体地说,如果 if 后面的表达式的求值结果为 true,那么它后面的语句块会被执行。如果是 false,那么该语句块不会被执行。

如果你想要在 if 后面表达式是 false 时发生什么,你可以使用一个 else 语句:

let x = 5;

if x == 5 {
    println!("x is five!");
} else {
    println!("x is not five :(");
}

如果有一个以上的情况下,可以使用 else if 语句:

let x = 5;

if x == 5 {
    println!("x is five!");
} else if x == 6 {
    println!("x is six!");
} else {
    println!("x is not five or six :(");
}

这都是非常标准的语法结构。然而,你也可以这样做:

let x = 5;

let y = if x == 5 {
    10
} else {
    15
}; // y: i32

我们可以(而且应该)这样写:

let x = 5;

let y = if x == 5 { 10 } else { 15 }; // y: i32

上面的代码会正常执行,因为 if 是个表达式。表达式的值是被选择的那个分支中最后一个表达式的值。并且如果 if 语句后面没有 else 语句,通常会将 () 作为语句执行的结果。

注释
for 循环
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }