我有一个具有许多属性的结构。此结构具有一个作出决策的函数,并将相应的属性传递给对引用的属性执行算术运算的不同函数。为什么我不能做这种多级参考传递生锈?
https://play.rust-lang.org/?gist=ef0cfc561afc2e4374475b93b2f62ab0&version=stable
struct Foo {
pub a: u8
}
impl Foo {
pub fn new() -> Foo {
Foo {
a: 1
}
}
pub fn calculate(&mut self) {
self.a += 1; // This is perfectly fine
self.add_later(&mut self.a); // This throws an error
}
fn add_later(&mut self, arg: &mut u8) {
*arg += 1;
}
}
fn main() {
let mut bar = Foo::new();
println!("{}", bar.a);
bar.calculate();
println!("{}", bar.a);
}