我如何定义和调用一个具有& str作为参数和返回值的闭包?

时间:2018-03-06 04:42:02

标签: rust closures lifetime

我编写了这段代码来测试闭包:

{% 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,
}

我对官方参考站点的闭包和生命周期有基本的了解,但是我无法在参考站点中找到上面编译器错误消息的含义,特别是关于所提到的生命周期的部分。

似乎错误的关键是为闭包定义生命周期。我怎么能解决它?

0 个答案:

没有答案