也有英文版文章
Also this tutorial has been written in English
Check out my Medium: Rust 01 — Installatin, data types & println!
⭐ 查看Rust官網文章(繁體版) - 變數(variables)和可變性(Mutability)
變數就是分派檔案(Assign Data)到一個暫時的記憶體位址(a temporary memory location)
在Rust, 變數綁定就是使用let宣告變數(預設不可變)
我們能將變數(variable)設定任何值和型別(value & type)
假如硬改不可變的變數x,這情況會...
fn main() {
let x = 5;
println!("x 的數值為:{x}");
x = 6;
println!("x 的數值為:{x}");
}
將會收到如下錯誤。
這只是其中一個Rust推動你使用Rust提供的安全性(safety)和簡易性(easy concurrency)寫程式的方法之一。
⭐補充說明
並行(Concurrency) 是什麼?
簡而言之,就像暗殺教室-殺老師在一段時間內做許多事,但每個時間點只做一件事
和此相對的是Parallelism(平行),每個時間點同時做許多事(非人哉)。
fn main() {
let mut x = 5;
println!("x 的數值為:{x}");
x = 6;
println!("x 的數值為:{x}");
}
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
Rust 是一門靜態型別語言(Statically Typed Language),這代表它必須在編譯時知道所有變數的型別
型別常見如下:
複合型別(Compound Types)如下:
更細節之數值,請看Rust官網繁體版 - 資料型別
所有的浮點數型別都是帶號的(signed)
fn main() {
let x = 2.0; // f64
let y: f32 = 3.0; // f32
}
fn main() {
let t = true;
let f: bool = false; // 型別詮釋的方式
}
fn main() {
let something = 'a';
let other_thing: char = 'A'; // 明確標註型別的寫法
let heart_eyed_cat = '⭐';
}
fn main() {
let hello = String::from("Hello, world!");
println!("{}", hello)
}
🔹 範例01
fn main() {
let tup = (800, 4.5, 3);
let (x, y, z) = tup;
println!("y的值: {y}");
}
結果是
y的值: 4.5
🔹 範例02 - 另一種表達方式
fn main() {
let x: (i32, f64, u8) = (500, 6.4, 1);
let five_hundred = x.0;
let six_point_four = x.1;
let one = x.2;
}
🔹 範例01 - 宣告方式百百種
fn main() {
let a = [1, 2, 3, 4, 5];
let months = [
"一月",
"二月",
"三月",
"四月",
"五月",
"六月",
"七月",
"八月",
"九月",
"十月",
"十一月",
"十二月",
];
let b: [i32; 5] = [1, 2, 3, 4, 5];
let c = [3; 5];
println!("The value of a is: {:?}", a);
println!("The value of months is: {:?}", months);
println!("The value of b is: {:?}", b);
println!("The value of c is: {:?}", c);
}
🔹 範例02 - 獲取陣列元素的方法
fn main() {
let a = [1, 2, 3, 4, 5];
let first = a[0];
let second = a[1];
}
最後不得不提的就是註解(Comment),好的註解簡易說明了此行/此段落程式碼,幫助工程師們互相交流、互相了解、互相抄襲。