当前位置:嗨网首页>书籍在线阅读

38-Fn闭包

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.7.1 Fn闭包

仅为读取访问变量的闭包实现Fn特征。它们访问的任何值都是引用类型(&T)。这是使用闭包的默认模式。请考虑如下代码:

// fn_closure.rs
fn main() {
    let a = String::from("Hey!");
    let fn_closure = || {
        println!("Closure says: {}", a);
    };
    fn_closure();
    println!("Main says: {}", a);
}

编译并运行上述代码后得到以下结果:

Closure says: Hey!
Main says: Hey!

即使在调用闭包之后仍然可以访问变量a,因为闭包使用了引用。