【发布时间】:2014-11-15 05:25:31
【问题描述】:
我正在学习 Rust,并且已经实现了一些简单的代码来试验闭包 - 但是我遇到了借用检查器的问题,我不确定如何解决。
编译如下函数时
fn twice(x:int, f:|int| -> int) -> int {
f(f(x))
}
我收到以下错误
closure requires unique access to `f` but it is already borrowed
我正在阅读该指南,并且对借用检查器不喜欢这个问题的原因有一定的了解 - 但我不确定如何解决它。
我可以通过首先将第一次调用的结果分配给一个临时变量,然后再次调用f(..) 来解决这个问题。然而,这感觉不雅。
是否有更简洁/更好的编写f(f(x)) 的方法,或者有什么方法可以让编译器相信这是安全的?
【问题讨论】:
标签: rust borrow-checker