Rust 编程视频教程(进阶)——005_1 闭包介绍

视频地址

头条地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/

讲解内容

1、闭包是可以保存进变量或者作为参数传递给其它函数的匿名函数。闭包和函数不同的是,闭包允许捕获调用者作用域中的值。

2、闭包的使用方式
例子1:

fn main() {
    let use_closure = || {
        println!("This is a closure");
    };

    use_closure ();
}

语法格式:

fn add_one_v1(x: u32) -> u32 { x + 1 } //函数
let add_one_v2 = |x: u32| -> u32 { x + 1 }; //闭包
let add_one_v3 = |x| { x + 1 }; //自动推导
let add_one_v4 = |x| x+1; //自动推导

说明:闭包定义会为每个参数和返回类型推导一个具体类型。但是不能推导两次。

错误例子:

let example_closure = |x| x;
let s = example_closure(String::from("hello"));
let n = example_closure(5); //报错,尝试推导两次,变成了不同的类型
本作品采用《CC 协议》,转载必须注明作者和本文链接
令狐一冲
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
255
粉丝
120
喜欢
308
收藏
128
排名:335
访问:2.8 万
私信
所有博文
社区赞助商