目錄
思維導圖
1. 函數的基本概念
1.1 函數的定義
2. 參數的使用
2.1 單個參數的示例
2.2 多個參數的示例
3. 語句與表達式
3.1 語句與表達式的區別
3.2 示例
4. 帶返回值的函數
4.1 返回值的示例
4.2 返回值與表達式
5. 錯誤處理
5.1 錯誤示例
思維導圖
1. 函數的基本概念
????????Rust語言中,函數是代碼中常見的構造,主要用于組織和復用代碼。main
函數是大多數程序的入口點,并引入了fn
關鍵字用于定義新函數。
1.1 函數的定義
- 定義方式:通過
fn
關鍵字后接函數名和一對括號來定義函數。 - 代碼示例:
fn main() {println!("Hello, world!");another_function(); } fn your_function() {println!("Your function."); }
- 調用函數:可以在
main
函數內調用其他已定義的函數,如your_function
。
2. 參數的使用
????????Rust允許函數定義參數,參數是函數簽名的特殊變量,允許向函數傳遞具體的值。
2.1 單個參數的示例
- 代碼示例:
fn main() {your_function(5); } fn your_function(x: i32) {println!("The value of x is: {x}"); }
- 輸出:運行后將打印
The value of x is: 5
。
2.2 多個參數的示例
- 代碼示例:
fn main() {print_multiparameter(5, 'h'); } fn print_multiparameter(value: i32, unit_label: char) {println!("The result is: {value}{unit_label}"); }
- 輸出:運行后將打印
The result is: 5h
。
3. 語句與表達式
????????Rust語言中,函數體由一系列語句組成,這些語句可以選擇性地以表達式結束。
3.1 語句與表達式的區別
- 語句:執行某個操作但不返回值,例如變量聲明。
- 表達式:計算并返回值,例如數學運算
5 + 6
。
3.2 示例
- 代碼示例:
fn main() {let y = {let x = 3;x + 1};println!("The value of y is: {y}"); }
- 輸出:將打印
The value of y is: 4
。
4. 帶返回值的函數
????????函數可以返回值,返回值的類型需要在箭頭->
后聲明。
4.1 返回值的示例
- 代碼示例:
fn num() -> i32 {6 } fn main() {let x = num();println!("The value of x is: {x}"); }
- 輸出:運行后將打印
The value of x is: 6
。
4.2 返回值與表達式
- 重要性:函數的返回值是函數體內最后一個表達式的值。
- 示例:
fn add_one(x: i32) -> i32 {x + 1 }
- 注意:如果在返回值的表達式后加上分號,將導致錯誤,因為分號會將表達式變為語句,不再返回值。
5. 錯誤處理
????????若在函數中不正確地使用分號,會導致類型不匹配的錯誤,編譯器會給出相應的錯誤信息以幫助調試。
5.1 錯誤示例
- 代碼示例:
fn add_one(x: i32) -> i32 {x + 1; // 錯誤:這里不返回值 }
- 錯誤信息:編譯器會提示?
mismatched types,
即類型不匹配,因為函數聲明期望返回?i32
類型,但實際返回的是()
,即unit
類型。
tips:
- 蛇形命名法;
- 必須聲明參數類型
- 有返回值時,必須是表達式。