Rust 新手程式設計師/函式
外觀
假設我們想再次對 y 進行 x2 + 5,但起始值為 7。它會是什麼樣子呢?
fn main() {
let mut x = 10;
x *= x;
x += 5;
println!("{}", x);
let mut y = 7;
y *= y;
y += 5;
println!("{}", y);
}
這將起作用,但假設我們想將其更改為對兩者都進行 x2 + 8。這意味著我們必須在兩個位置進行更改。在這裡,這似乎不費太多功夫,但這種想要做同樣事情,只是值略有不同的模式非常常見。因此,我們可以將其分離成一個函式。我們先取其中一個
fn print_value() {
let mut x = 10;
x *= x;
x += 5;
println!("{}", x);
}
這將起作用,除了函式的目的是接收具有不同值的輸入。將輸入放入函式的方法是將其放在 () 括號中。您輸入輸入的名稱,類似於變數的名稱,然後必須明確寫出輸入的型別。
fn calc_value(input: i32) {
let mut value = input;
value *= value;
value += 5;
println!("{}", value);
}
請注意,我們將 value 設定為 input 的值。這意味著由於我們使用了 'mut' 關鍵字,我們可以修改函式內部的值。或者,我們可以在 'input' 之前加上 mut,然後 input 將可以修改。接下來,我們可以將 main() 更改為
fn main() {
calc_value(10);
calc_value(7);
}
這意味著程式碼更容易修改和分離,從而更容易閱讀和編輯。
另一種方法可能是,如果我們不想在函式內部列印,而是輸出不同的值,以便 main() 函式可以將其打印出來或對其執行任何操作。這被稱為返回,您使用 '-> type' 指定返回值。例如,該函式將返回一個整數,因此我們透過在 () 後面但 {} 之前新增 '-> i32' 來返回 i32。
fn calc_value(input: i32) -> i32 {
let mut value = input;
value *= value;
value += 5;
return value;
}
然後我們在 main() 函式中像這樣列印值
fn main() {
let value1 = calc_value(10);
let value2 = calc_value(7);
println!("{}", value1);
println!("{}", value2);
}
這讓我們可以做更多有趣的事情,比如將函式呼叫連結在一起。例如,我們可以將 main 更改為
fn main() {
let mut value = calc_value(10);
value = calc_value(value);
println!("{}", value);
}
這將對 10 進行兩次 x2 + 5 操作,因此我們得到 11030。這僅僅是對函式及其用途的粗略概述。