结构中的字符串切片(在Rust中)

时间:2014-10-14 11:59:17

标签: string struct rust lifetime

如何告诉Rust我想要一个包含字符串片段的结构?

我试过了:

struct Welcome {
    version: &str,
}

但是编译器抱怨:

src/chat.rs:16:14: 16:18 error: missing lifetime specifier [E0106]
src/chat.rs:16     version: &str,

根据我对Rust的有限理解,我认为字符串切片是指向其他地方分配的文本的指针+长度。

我希望字符串切片的生命周期是分配文本的生命周期。

1 个答案:

答案 0 :(得分:10)

你的理解大多是正确的,你离你想要的只有一步之遥。您可以这样使用命名生命周期:

struct Welcome<'a> {
    version: &'a str,
}

这表示&amp; str引用必须与包含Welcome结构的生命周期相同。 有关生命周期的更多信息可以在the lifetimes guide

中找到