实现具有生命周期的结构

Bra*_*ean 6 rust

这是我的代码:

struct Server<'a> {
    port: &'a u16,
}

impl Server {
    fn connect() {
        //stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到的错误与impl块有关:

error: wrong number of lifetime parameters: expected 1, found 0 [E0107]
Run Code Online (Sandbox Code Playgroud)

我必须添加一个生命周期参数以Server允许u16切片,但我不知道如何为impl块添加一个。

Jor*_*eña 7

您还需要在实现上添加生命周期注释。

impl<'a> Server<'a> {
    fn connect() {
        //stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Milan 第一次出现定义了生命周期。第二个只是可以使用它的许多地方之一。第一次出现很有用,因为可以使用更复杂的生命周期定义结构,例如生命周期界限,例如 `impl&lt;'a, 'b, 'a: 'b&gt; Server&lt;'a, 'b&gt; { ... }`。这也是定义类型参数的地方,并且它们本身可以具有特征边界。在像这样的简单情况下,虽然它确实感觉重复,但至少它是一致的。 (2认同)