在以下代码段中:
let read_pool = ReadPool::new(
"readpool",
&Config::default_for_test(),
|| || Context {}
);
Run Code Online (Sandbox Code Playgroud)
四条垂直线是|| ||什么?
Fau*_*aux 10
|| 代表一个不带参数的lambda.
fn main() {
let a = || println!("hello");
let b = || { println!("world") };
a(); // hello
b(); // world
}
Run Code Online (Sandbox Code Playgroud)
两个一起是lambda返回另一个lambda:
fn main() {
let a = || || println!("hello world");
let c = a();
c(); // hello world
}
Run Code Online (Sandbox Code Playgroud)
在 Rust 中,||引入了 lambda(一个未命名的函数)。
lambda 的参数在两者之间指定:
|a, b| a + b:一个 lambda 接受 2 个参数a并b返回它们的总和,|| println!("Hello, World"):一个不带参数的 lambda 并打印“Hello, World!”。由于 lambda 的主体只是一个表达式,因此它可以是另一个 lambda:
|| || println!("Hello, World"):一个不带参数的 lambda 并返回一个不带参数的 lambda 并打印“Hello, World!”。因此,|| || Context {}简单来说就是:
|| Context {},Context。