如何解决如果未明确提供类型,借用检查器会在循环内抱怨关闭
我有这段代码,借用检查器显示错误:
fn f1(v: &str) {
}
fn main() {
let c = |v| f1(v);
for _ in 0..1 {
let s = String::new();
c(&s);
}
}
|
10 | c(&s);
| - ^^ borrowed value does not live long enough
| |
| borrow later used here
11 | }
| - `s` dropped here while still borrowed
但是,如果我在闭包中添加显式类型,则代码会编译let c = |v: &str| f1(v);
有人可以解释为什么它在第二种情况下而不是在第一种情况下起作用吗,因为我了解到锈在第一个示例中正确地推断出相同的类型(如果在循环外运行闭包,则可以起作用)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。