今天繼續來看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);
}
如果當需要的操作比較多,且想留下註解說明時我應該會使用這個做法,不然的話下面的會比較簡潔。
Rust 有 loop
, while
, for
這邊我覺得比較不一樣的用法是loop
loop 是一個無限迴圈,可以用break
跳脫
fn main() {
loop {
println!("再一次!");
}
}
while
, for
則和其他語言差不多用法。
明天來分享Rus最核心的概念之一,所有權 (Ownership),之後就可以來往下一階段前進了。