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()是什么意思?

推荐答案

这是一个零参数的闭包.这是一个简单的示例,展示了基本语法和用法(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));

Rust相关问答推荐

移植带有可变borrow 的C代码-卸载期间错误(nappgui示例)

为什么在Rust struct 中只允许最后一个字段具有动态大小的类型

将内部类型作为参数的泛型 struct 上的方法

在函数内定义impl和在函数外定义impl的区别

在决定使用std::Sync::Mutex还是使用Tokio::Sync::Mutex时,操作系统线程调度是考虑因素吗?

我是否可以在Ruust中修改 struct 实例上的字符串,以使其在修改后具有相同的字符串生存期?

作为1字节位掩码的布尔值 struct

铁 rust 中双倍或更多换行符的更好练习?

由于生存期原因,返回引用的闭包未编译

如何在 `connect_activate()` 之外创建一个 `glib::MainContext::channel()` 并将其传入?

Rust Option 的空显式泛型参数

将泛型中的 Box 转换为 rust 中的 Box

Rust并发读写引起的死锁问题

Rust 中的 Option as_ref 和 as_deref 有什么不同

从 Axum IntoResponse 获取请求标头

Rust 函数指针似乎被borrow 判断器视为有状态的

Rust 中函数的类型同义词

RAII 模式的 Rust 解决方案,用于在 new() 和 drop() 上修改另一个对象

没有通用参数的通用返回

为什么 Rust 标准库同时为 Thing 和 &Thing 实现特征?