我刚遇到了一个关于Rust如何处理闭包的问题。
假设我是一个库的作者,我写了这个方法:
fn get(&mut self, handler: fn() -> &str){
//do something with handler
}
现在,如果用户想这样调用该方法
let foo = "str";
server.get(|| -> &str { foo });
这样做行不通,因为 Rust 根据其文档,对常规函数和闭包之间进行了明显区分。
作为库的作者,我总是必须使这些方法接受闭包而不是普通函数,以不过度限制库用户吗?
似乎只有使用闭包才能编写匿名函数,我有错吗?