我目前正在学习Rust,我正在努力创造一个存储任意类型回调的简单观察者。
我从一个基本的结构
开始struct Signal<T> {
slots: Vec<|T|>
}
让我得到了初始生命周期错误
signal_test.rs:7:16: 7:19 error: explicit lifetime bound required
signal_test.rs:7 slots: Vec<|T|>
^~~
error: aborting due to previous error
接下来我尝试添加一些生命周期说明符。
struct Signal<'r, T> {
slots: Vec<'r |T|>
}
这让我有了一些新的错误
signal_test.rs:7:12: 7:23 error: wrong number of lifetime parameters: expected 0, found 1 [E0107]
signal_test.rs:7 slots: Vec<'r |T|>
^~~~~~~~~~~
signal_test.rs:7:19: 7:22 error: explicit lifetime bound required
signal_test.rs:7 slots: Vec<'r |T|>
我无法找到足够的生锈生命周期文档来暗示我需要做些什么来解决这个问题。可能只是这不是Rust中使用的好模式。一些帮助和评论将不胜感激。
答案 0 :(得分:3)
尝试使用:
struct Signal<'r, T> {
slots: Vec<|T|: 'r>
}