Rust 给定生存期时,编译器在结构中请求生存期

Rust 给定生存期时,编译器在结构中请求生存期,rust,lifetime,Rust,Lifetime,我试图在《SFML游戏开发》一书中写一些例子,但我对应该代表游戏世界的结构的生命周期有一个问题。错误如下: extern crate sfml; use self::sfml::window::*; use self::sfml::graphics::*; pub struct Game<'s> { mWindow: RenderWindow, mPlayer: &'s CircleShape, } 如果我给了它一个生命,它为什么还要求一辈子呢 如果我给

我试图在《SFML游戏开发》一书中写一些例子,但我对应该代表游戏世界的结构的生命周期有一个问题。错误如下:

extern crate sfml;

use self::sfml::window::*;
use self::sfml::graphics::*;

pub struct Game<'s> {
    mWindow: RenderWindow,
    mPlayer: &'s CircleShape,
}
如果我给了它一个生命,它为什么还要求一辈子呢

如果我给了它一个生命,它为什么还要求一辈子呢

因为你没有在需要的地方给它生命。仔细查看错误消息。它告诉你,
CircleShape
缺少一个生命周期,而不是对
CircleShape
的引用(尽管这也是需要的)

查看
圆形的定义

pub struct CircleShape<'s> { /* fields omitted */ }
pub结构圆形{
mWindow:RenderWindow,
mPlayer:&的圆形
如果我给了它一个生命,它为什么还要求一辈子呢

因为您没有给它所需的生存期。请仔细查看错误消息。它告诉您,
CircleShape
缺少生存期,而不是对
CircleShape
的引用(尽管这也是必需的)

查看
圆形的定义

pub struct CircleShape<'s> { /* fields omitted */ }
pub结构圆形{
mWindow:RenderWindow,
mPlayer:&’s CircleShapee也可参见