Warum funktioniert der Binary + -Operator nicht mit two & mut int?

fn increment(number: &mut int) {

    // this fails with: binary operation `+` cannot be applied to type `&mut int`
    //let foo = number + number;

    let foo = number.add(number);

    println!("{}", foo);
}

fn main() {
    let mut test = 5;
    increment(&mut test);

    println!("{}", test);
}

Warum tutnumber + number scheitern abernumber.add(number) funktioniert?

Als Bonusfrage: Der obige Ausdruck

10
5

Habe ich Recht, das anzunehmen?test ist immer noch 5, weil die Daten sindkopiert um zu erhöhen? Der einzige Weg, dass das Originaltest Variable könnte durch die mutiert werdenincrement funktion wäre wenn es als senden wäreBox<int>, richtig?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage