iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

Let's go Rusty. 從0開始了解Rust.系列 第 4

Day 04 - 函式(Functions) & 控制流程(Control Flow) - if/else

  • 分享至 

  • xImage
  •  

也有英文版文章
Also this tutorial has been written in English
Check out my Medium

Rust的中文翻譯以參考這份檔案為主.


目錄

  • 函式(Functions)
  • 控制流程(Control Flow) - if/else

函式(Function)

你已見過這個最重要的函式 - main 函式是許多程式的入口點。
fn 關鍵字能讓我們宣告新的函式。

Rust 使用 **snake case **式作為函式與變數名稱的慣例風格:

  • 所有的字母都是小寫
  • 並用底線區隔單字

🔹Example 01 - 基本函式

fn main() {
    println!("Hello, world!");

    another_function();
}

fn another_function() {
    println!("另一支函式。");
}


結果
https://ithelp.ithome.com.tw/upload/images/20230907/20145149F2aKVLzbon.png

🔹Example 02 - 參數(parameters)

函式可以定義成擁有參數(parameters)的,這是**函式簽名(signatures)**中特殊的變數,傳遞的數值則會叫做引數(arguments)。

  • 函式定義時才叫參數
  • 傳遞數值時叫做引數

以下為函式加上參數的範例:

fn main() {
    another_function(5);
}

fn another_function(x: i32) {
    println!("x 的數值為:{x}");
}

https://ithelp.ithome.com.tw/upload/images/20230907/20145149k7WaRJPHuY.png

🔹Example 03 - 陳述式(statements)與表達式(expression)

Rust 是基於表達式(expression-based)的語言,知道這樣的區別是很重要,其他語言通常沒有這樣的區別,

  • 陳述式(Statements)執行指定的一系列操作,且不回傳任何數值,不會回傳結果
  • 表達式(Expressions)則是計算並產生數值,經常透過一些符號結合上下語句並運算及回傳結果

陳述式(statements)

fn main() {
    let a = 2;
}

表達式(expression)

fn main() {
    let a = 8;

    let b = {
        let a = 4;
        a + 1
    };

    println!("a 的數值為:{a}");
}

https://ithelp.ithome.com.tw/upload/images/20230907/20145149FanmBwN9AJ.png

🔹Example 04 - 函式回傳值

fn five() -> i32 {
    5
}

fn main() {
    let x = five();

    println!("x 的數值為:{x}");
}


控制流程(Control Flow)

依據某些條件是否為true,來決定是否執行

  • if
  • else if
  • else

🔹Example 05 - 處理多重條件

fn main() {
    let number = 6;

    if number % 4 == 0 {
        println!("數字可以被 4 整除");
    } else if number % 3 == 0 {
        println!("數字可以被 3 整除");
    } else if number % 2 == 0 {
        println!("數字可以被 2 整除");
    } else {
        println!("數字無法被 4、3、2 整除");
    }
}

過多的else if會造成混亂,未來會提到功能強大的 Rust 條件判斷結構 - match

🔹Example 06 - 陳述式中的if

fn main() {
    let condition = true;

    let number = if condition { 5 } else { "六" };

    println!("數字結果為:{number}");
}


參考資料 Reference

Nice 教學影片


上一篇
Day 03 - 變數(Variable) & 資料型別(Data Type) & 註解(Comment)
下一篇
Day 05 - 迴圈(Loop) & While 迴圈(While Loop)
系列文
Let's go Rusty. 從0開始了解Rust.15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言