gpt4 book ai didi

rust - 在结构中声明闭包的生命周期

转载 作者:行者123 更新时间:2023-11-29 07:43:18 37 4
gpt4 key购买 nike

从我能找到的各种资源中,可以像这样为 struct 中的属性赋予生命周期:

pub struct Event<'self> {
name: String,
execute: &'self |data: &str|
}

&'self 生命周期的使用现已弃用。将属性声明为闭包类型时,编译器告诉我它需要一个生命周期说明符,但我无法在任何地方找到将闭包作为结构属性的示例。

这是我目前正在尝试的:

pub struct Event<'a> {
name: String,
execute: &'a |data: &str|
}

但我收到以下错误:error: missing lifetime specifier [E0106]

struct 或任何类型中声明 closure 生命周期的正确语法是什么?

最佳答案

已更新至 Rust 1.4。

闭包现在基于三个特征之一,Fn , FnOnce , 和 FnMut .

闭包的类型无法精确定义,我们只能将泛型类型绑定(bind)到闭包特征之一。

pub struct Event<F: Fn(&str) -> bool> {
name: String,
execute: F
}

关于rust - 在结构中声明闭包的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184314/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com