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,因为闭包使用了引用。