이것은 내 코드의 모양입니다. 내 ShapeRenderer
구조체 내에 함축 된 구조체를 사용하여 해당 메서드를 사용하려고합니다.struct 필드 객체 유형을 선언 할 때 어떤 종류의 평생 매개 변수를 사용해야합니까?
shapes.rs :
use super::core::*;
pub struct ShapeRenderer<'a> {
core_renderer: &'a mut CanvasRenderer,
}
core.rs
pub struct Canvas {
pub width: usize,
pub height: usize,
pub array: Vec<char>,
}
pub struct Point {
pub x: usize,
pub y: usize,
}
pub struct CanvasRenderer<'a> {
canvas: &'a mut Canvas,
}
impl<'a> CanvasRenderer<'a> {
pub fn new(canvas: &'a mut Canvas) -> CanvasRenderer {
CanvasRenderer { canvas: canvas }
}
}
오류
error[E0107]: wrong number of lifetime parameters: expected 1, found 0
--> src/shapes.rs:5:28
|
5 | core_renderer: &'a mut CanvasRenderer
| ^^^^^^^^^^^^^^ expected 1 lifetime parameter
평생 매개 변수로 표시했는데 다른 매개 변수가 필요한 이유는 무엇입니까? <'a>
으로 오브젝트 유형을 시도한 후 <'a>
을 추가했습니다. 이러한 시도 중 어느 것도 문제를 해결하지 못했습니다.
같은 캔버스에 두 개의 mut 참조를 보유 할 것으로 예상되는 디자인입니다. 그것은 어쨌든 작동하지 않을 것입니다. –
아! 좋은 점 - 당신이 그것을 지적 감사합니다! – xetra11