Как передать ссылку на изменяемые данные в Rust?

Я хочу создать изменяемую структуру в стеке и мутировать ее из вспомогательных функций.

#[deriving(Show)]
struct Game {
        score: u32,
}

fn addPoint (game: &mut Game) {
        game.score += 1;
}

fn main() {
        let mut game = Game { score: 0 };

        println!("Initial game: {}", game);

        // This works:
        game.score += 1;

        // This gives a compile error:
        addPoint(&game);

        println!("Final game:   {}", game);
}

пытаюсь скомпилировать это дает:

rustc mutable.rs 
mutable.rs:19:18: 19:23 error: cannot borrow immutable dereference of `&`-pointer as mutable
mutable.rs:19         addPoint(&game);
                               ^~~~~
error: aborting due to previous error

что я делаю не так?

1 ответов


заимствованный указатель также должен быть помечен как изменяемый:

addPoint(&mut game);