1

Rust でこのようなものを実装する一般的なパターンはありますか?

エラーは

cannot borrow `sprite` as mutable because it is also borrowed as immutable

私は問題を理解していますが、Rust でこのようなものを実装する方法がわかりません。

struct Sprite {
    position: i32,
}

impl Sprite {
    pub fn left(&mut self) {
        self.position += 1;
    }
}

struct Game<'g> {
    sprite: &'g Sprite,
}

impl<'g> Game<'g> {
    pub fn new(sprite: &Sprite) -> Game {
        Game { sprite: sprite }
    }
}

fn main() {
    let mut sprite = Sprite { position: 3 };

    let game = Game::new(&sprite);

    sprite.left();
}

コードはプレイグラウンドでも入手できます。

4

1 に答える 1