iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

今天繼續來看Rust文件,以前在嘗試一個新的程式語言時滿常看個教學文件或是線上課程就直接下去試著寫,邊寫功能邊查文件,昨天這樣看著官方的文件發現許多設計上不同的地方,也開始建立起寫Rust的信心。

Rust 特性

函數

在官方文件中看到了一個我沒有用過的用法覺得還滿神奇的,

fn main() {
    let x = 5; // 原文文件這個例子沒有這一行

    let y = {
        let x = 3;
        x + 1
    };

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

這個例子讓我在想為什麼會需要這個方法與這個方法的優缺點還有跟其他語言的對比,這種的好處我認為是

  • 不會影響原始變數
  • 可讀性
  • 不用新增臨時變數

而缺點的話應該是

  • 可能引起混淆
  • 不好維護

如果以簡單的例子來看感覺不出來這樣的好處,但如果步驟更多需要隔離的變數與邏輯更多時,應該會比較用得上,

// 將一個文字的數字 + 3
fn main() {
    let input = "5";
    let y = {
        // 這邊將文字轉為I32
        let x = input.parse::<i32>().unwrap();
        // 這邊不加; 代表回傳值
        x + 3
    };
    println!("y 的數值為:{}", y);
}
}

像上面的例子以我的習慣應該會寫成這樣

fn main() {
    let input = "5";
    let y = input.parse::<i32>().unwrap() + 3;
    println!("y 的數值為:{}", y);
}

如果當需要的操作比較多,且想留下註解說明時我應該會使用這個做法,不然的話下面的會比較簡潔。


Control Flow

Rust 有 loop, while, for
這邊我覺得比較不一樣的用法是loop
loop 是一個無限迴圈,可以用break跳脫

fn main() {
    loop {
        println!("再一次!");
    }
}

while, for則和其他語言差不多用法。

明天來分享Rus最核心的概念之一,所有權 (Ownership),之後就可以來往下一階段前進了。


上一篇
[Day 4] Rust 學習計畫
下一篇
[Day 6] Rust 學習3
系列文
三十歲時在做什麼?有沒有空?可以來做遊戲嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言