? ? ? ?上一期我們學(xué)習(xí)了數(shù)字基本類型包括整數(shù)數(shù)據(jù)類型和浮點(diǎn)數(shù)數(shù)據(jù)類型,并使用 Rust 進(jìn)行了一些算數(shù)運(yùn)算。在進(jìn)行算數(shù)運(yùn)算時我們是使用修改 Rust 代碼然后重新編譯執(zhí)行的方式,這種方式對于懂編程語言懂 Rust 的人還可以使用,而且每次需要計算新的數(shù)字都需要編寫代碼再編譯運(yùn)行這樣也太麻煩。能不能把它做成一個不需要重新編寫重新編譯只需要在命令行輸入我們需要計算的數(shù)字和表達(dá)式就能計算出結(jié)果呢?

? ? ? ? 就像這樣,在命令行里輸入 compute 1024 + 128 回車執(zhí)行,在命令行里就輸出了運(yùn)算結(jié)果 1024+128=1152 。如果需要計算 1024 除以 2 的值,我們只需要在命令行里輸入 compute 1024 /128, 在數(shù)字運(yùn)算中我們使用反斜杠代表除運(yùn)算符,輸入回車執(zhí)行,在命令行里就輸出了運(yùn)算結(jié)果1024/2=512 ,這樣我們的計算程序使用起來是不是就方便多了,而且不懂編程不懂 Rust 的人也能使用。是不是有點(diǎn)想把上一期的程序改造成這樣的小沖動,再開始改造之前我們需要先學(xué)習(xí)下布爾基本類型、字符基本類型和 if 表達(dá)式。
? ? ? 我們先來了解下字符基本類型,字符基本類型用來表示單個字符,如:字母 A ,字母 B ;在 Rust 中使用 char 聲明變量為字符類型,如:
? ? ? ?let c:char = ‘A’
? ? ? ?這里需要注意,在編寫代碼時需要使用單引號把字符括起來,需要跟我們前面接觸到的使用雙引號括起來表示的字符串區(qū)別開來。還需要說明下,字符類型并不是字母類型,因為它的值除了可以是英文字母也可以是單個中文字符甚至是單個字符表情符號。類似這樣:
? ? ? ?let heart_eyed_cat = '??';?
? ? ? 怎么樣, Rust 中的字符類型還是挺強(qiáng)大的吧?
? ? ? 接下來我們學(xué)習(xí)下布爾類型,布爾基本數(shù)據(jù)類型只有倆個值真或假,也就是 true 或者 false 。在 Rust 中可以使用 bool 聲明變量類型為布爾類型( bool 是 boolean 的縮寫,我們把它讀作 boolean )類似:?
? ? ? ? let b:bool = true;?
? ? ? ?在實際的項目中布爾類型變量的值一般是通過表達(dá)式求值的,如:
? ? ? ? ?let b = 2 < 3;
? ? ? ? 2 小于 3, 所以 b 的值為 true ,類似這樣返回值為布爾類型的表達(dá)式多用于 if 表達(dá)式中做為是否執(zhí)行當(dāng)前代碼分支的判斷依據(jù),我們先來看下 if 表達(dá)式的語法:
if 條件表達(dá)式 1 {
分支 1
}else if 條件表達(dá)式 2 {
分支 2
}else if 條件表達(dá)式 3 {
分支 3
}else {
分支 4
}
? ? ? ?這里的條件表達(dá)式就是返回值為布爾類型表達(dá)式,如 2<3。 想象一下我們站在一個岔路口,每個分支就代表一條路,我們一條路一條路的判斷是不是可以走這條路,如果條件表達(dá)式值為真也就是 true 我們就可以走這條路,如果值為假我們就繼續(xù)判斷下條路是否可以走。如果判斷了前面的 if 路和所有的 else if 路都沒有滿足條件的,我們就可以走 else 路。

? ? ? ?這里大家需要注意:else if 和 else 并不是必須的,如果沒有 else if 和 else , if 路又不能滿足條件,就哪個代碼分支也不執(zhí)行,
相當(dāng)于哪個路都不走了直接跳過這個岔路口。
? ? ? ? 我們練習(xí)一下:給定一個數(shù)字 num 如果這個數(shù)字大于 100 就輸出“這個數(shù)字太大了”,如果這個數(shù)字小于 50 輸出“這個數(shù)字太小了”,如果這個數(shù)字即不大于 100 又不小于 50 我們就輸出“這個數(shù)字剛好合適”,考慮下這個程序該怎么編寫?!