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

14

我该如何告诉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个回答

16

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

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

这意味着&str引用必须与包含的Welcome结构具有相同的生命周期。

有关生命周期的更多信息,请参阅生命周期指南


感谢您的答复。我尝试做的下一个(类似的)事情也因生命周期问题而失败了。https://stackoverflow.com/questions/26364310/references-in-structs-in-rust 我已经谷歌搜索过这个错误,但没有找到任何有用的信息。 - fadedbee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接