跳轉到內容

Rust 新手程式設計師/函式

100% developed
來自 Wikibooks,開放世界中的開放書籍

假設我們想再次對 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。這僅僅是對函式及其用途的粗略概述。

接下來:if 語句和布林值

華夏公益教科書