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

时间:2016-05-02 17:56:28

标签: rust

Non-Lexical Lifetimes: Introduction中,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())
}

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

2 个答案:

答案 0 :(得分:17)

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

fn main() {
    let c = || println!("c called");
    c();
    c();
}

打印:

c called
c called

另一个example from the documentation

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

assert_eq!(2, plus_one(1));

答案 1 :(得分:8)

这是一个零参数lambda函数。