我试图在书中编写示例" SFML Game Development"但我对结构的生命周期有一个问题,它应该代表游戏世界。错误如下:
"${file1}_${file2}_Compare.txt"
错误讯息:
extern crate sfml;
use self::sfml::window::*;
use self::sfml::graphics::*;
pub struct Game<'s> {
mWindow: RenderWindow,
mPlayer: &'s CircleShape,
}
如果我给它一个,为什么要求终身?
答案 0 :(得分:3)
如果我给它一个,为什么要求终身?
因为你还没有给它所需的生命周期。仔细查看错误消息。它告诉你CircleShape
缺少生命周期,而不是引用到CircleShape
(虽然这也是必需的)。
查看CircleShape
的定义:
pub struct CircleShape<'s> { /* fields omitted */ }
它已被生命周期参数化,因此您需要提供一个:
pub struct Game<'s> {
mWindow: RenderWindow,
mPlayer: &'s CircleShape<'s>,
}
对于你的案例,是否正确,我不能说,但它应该编译。