Почему бинарный оператор + не работает с двумя & 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);
}
Почемуnumber + number
не удалось, ноnumber.add(number)
работает?
В качестве бонусного вопроса: вышеперечисленное распечатывает
10
5
Правильно ли я предположить, чтоtest
еще 5, потому что данныескопированный к увеличению? Единственный способ, которым оригиналtest
переменная может быть видоизмененаincrement
функция была бы, если бы она была отправлена какBox<int>
, право?