【发布时间】:2020-11-17 01:39:58
【问题描述】:
我试图了解 Rust 中的所有权,但遇到了与所有权转让相关的误解。考虑以下代码:
fn main() {
let closure = || 32;
foo(closure);
foo(closure); //perfectly fine
}
fn foo<F>(f: F) -> u32
where
F: Fn() -> u32,
{
f()
}
我认为应该转让所有权,不应允许第二次调用foo(closure)。
为什么会起作用?
【问题讨论】:
标签: rust closures borrow-checker ownership