Rust的一元是什么|| (平行管)是什么意思?

Cal*_*der 9 rust

非词汇生命周期:简介中,Niko包含以下代码段:

fn get_default3<'m,K,V:Default>(map: &'m mut HashMap<K,V>,
                                key: K)
                                -> &'m mut V {
    map.entry(key)
       .or_insert_with(|| V::default())
}
Run Code Online (Sandbox Code Playgroud)

|| V::default()意味着什么?

Arj*_*jan 19

它是一个零参数的闭包.这是一个简化示例,用于显示基本语法和用法(播放):

fn main() {
    let c = || println!("c called");
    c();
    c();
}
Run Code Online (Sandbox Code Playgroud)

这打印:

c called
c called
Run Code Online (Sandbox Code Playgroud)

文档中的另一个例子:

let plus_one = |x: i32| x + 1;

assert_eq!(2, plus_one(1));
Run Code Online (Sandbox Code Playgroud)


Cal*_*der 9

这是一个零参数lambda函数.