Rust教學
Rust下載和安裝
Rust簡介
Rust Hello World
Rust的特點
Rust註釋
Rust開發環境安裝
Rust文檔
Rust第一個程序
Rust格式化打印
Rust調試
Rust顯示
測試用例:列表
Rust格式化
Rust原語
Rust常量和運算符
Rust元組
Rust數組和切片
Rust自定義類型
Rust結構
Rust可視性
Rust枚舉
Rust常量
Rust變量綁定
Rust變量綁定-可變性
Rust變量綁定-範圍和陰影
Rust變量綁定-聲明
Rust類型轉換
Rust類型轉換 - 字面量
Rust類型轉換-推導
Rust類型轉換 - 別名
Rust表達式
Rust if/else語句
Rust循環
Rust嵌套和標籤
Rust while循環
Rust for和範圍
Rust匹配/match
Rust匹配析構元組
Rust解構枚舉
Rust指針和引用
Rust解構結構
Rust Guards
Rust綁定
Rust if let
Rust while let
Rust函數
Rust方法
Rust閉包
Rust捕捉
Rust作爲輸入參數
Rust匿名類型
Rust輸入函數
Rust作爲輸出參數
Rust閉包
閉包
閉包*在Rust 是一個稍微專業的語法,可以捕捉到封閉的環境函數。 這種語法和能力使它們在運行使用非常方便。一些特性包括:
- 使用
||
替代()
圍繞輸入變量。 - 輸入和返回類型可以推斷出。
- 輸入變量名稱必須指定。
- 主體定界 (
{}
) 是可選的一個表達式。強制性其他。 - 外環境變量可能被捕獲。
- 調用閉包和函數與
call(var)
是完全一樣的
fn main() {
// Increment via closures and functions.
fn function (i: i32) -> i32 { i + 1 }
// Annotation is identical to function annotation but is optional
// as are the \`{}\` wrapping the body. These nameless functions
// are assigned to appropriately named variables.
let closure\_annotated = |i: i32| -> i32 { i + 1 };
let closure\_inferred = |i | i + 1 ;
let i = 1;
// Call the function and closures.
println!("function: {}", function(i));
println!("annotated closure: {}", closure\_annotated(i));
println!("inferred closure: {}", closure\_inferred(i));
// A closure taking no arguments which returns an \`i32\`.
// The return type is inferred.
let one = || 1;
println!("closure returning one: {}", one());
// It is possible to capture variables from the enclosing
// environment; something which is impossible with functions.
let professor\_x = "Charles Xavier";
// A closure which takes no argument, returning nothing, prints
// a variable from the enclosing scope.
let print = || println!("Professor X's name is: {}", professor\_x);
// Call the closure.
print();
}
*.也被稱爲lambda表達式或匿名函數。