如何告诉Rust我想要一个包含字符串片段的结构?
我试过了:
struct Welcome {
version: &str,
}
但是编译器抱怨:
src/chat.rs:16:14: 16:18 error: missing lifetime specifier [E0106]
src/chat.rs:16 version: &str,
根据我对Rust的有限理解,我认为字符串切片是指向其他地方分配的文本的指针+长度。
我希望字符串切片的生命周期是分配文本的生命周期。
答案 0 :(得分:10)
你的理解大多是正确的,你离你想要的只有一步之遥。您可以这样使用命名生命周期:
struct Welcome<'a> {
version: &'a str,
}
这表示&amp; str引用必须与包含Welcome结构的生命周期相同。 有关生命周期的更多信息可以在the lifetimes guide
中找到