我编写了这段代码来测试闭包:
{% for item in items %}
<tr>
<td>{{ item.item_name }}</td>
<td>{{ item.item_type }}</td>
</tr>
{% endfor %}
我收到了以下编译错误:
fn main() {
let test_closure = |p| p;
let ct = ClosureTest { cls: test_closure };
let s = "why".to_string();
println!("{}", (ct.cls)(&s));
}
struct ClosureTest<T>
where
T: Fn(&str) -> &str,
{
cls: T,
}
我对官方参考站点的闭包和生命周期有基本的了解,但是我无法在参考站点中找到上面编译器错误消息的含义,特别是关于所提到的生命周期的部分。
似乎错误的关键是为闭包定义生命周期。我怎么能解决它?