函式
函式需要在前面加上 fn 關鍵字。
Rust 中函式名稱與變數名稱使用 snake_case 規範。
Rust 程式碼的入口點是 main 函式。
函式的順序並不重要,只要一定義好,你可以在其前或其後進行呼叫 (編譯型語言的特徵)。
fn main() {
println!("Hello, world!");
another_function();
}
fn another_function() {
println!("Another function.");
}
函式可以設定參數,且參數必須定義好類型。
fn main() {
another_function(5);
}
fn another_function(x: i32) {
println!("The value of x is: {}", x);
}
Rust 是一個基於表達式 (expression based) 的語言。
陳述式 (statement) 是一些執行操作但不返回值的指令。
表達式 (expression) 在計算後會返回一個值。
let 宣告變數為陳述式。
fn main() {
// 你不能這麼做,因為 let y = 6 不會返回值
let x = (let y = 6);
}
在其他語言,變數宣告是會返回值,例如 PHP。
<?php
$x = $y = 6;
echo $x; // 6
echo $y; // 6
簡單的計算,例如 5 + 6,在 Rust 中為表達式,會返回值。
或是用來創建新作用域的 { },也是一種表達式。
在 Rust 中,想返回的值可以以表達式的方式寫在作用域的最後一行,但不能加上 ;。
fn main() {
let y = {
let x = 3;
// 在 Rust 中,想返回的值可以以表達式的方式寫在作用域的最後一行
// 切記不能加上分號 ";",否則這會變成陳述式
x + 1
};
// y = 4
println!("The value of y is: {}", y);
}
函式如果有返回值,也需要事先定義好返回值的類型。
fn plus_one(x: i32) -> i32 {
// 不能加上 ";"
x + 1
}
fn main() {
let x = plus_one();
println!("The value of x is: {}", x);
}