История изменений
Исправление mersinvald, (текущая версия) :
Т.е. если функция умножает 2 числа, то я не могу передать два одинаковых числа, чтобы получить квадрат?
В примере показаны изменяемые ссылки. Изменять одну и ту же память по двум разным ссылкам — небезопасно потому что ты поломаешь память по a, получишь не пойми что и с b словишь легфолт или UB.
Если память менять не надо, а нужно вернуть квадрат (функция вообще чистая) — никаких проблем
fn mul(a: &i32, b: &i32) -> i32 {
a * b
}
Исправление mersinvald, :
Т.е. если функция умножает 2 числа, то я не могу передать два одинаковых числа, чтобы получить квадрат?
В примере показаны изменяемые ссылки. Изменять одну и ту же память по двум разным ссылкам — небезопасно потому что ты поломаешь память по a, получишь не пойми что и с b словишь легфолт или UB.
Если память менять не надо, а нужено вернуть квадрат (функция вообще чистая) — никаких проблем
fn mul(a: &i32, b: &i32) -> i32 {
a * b
}
Исходная версия mersinvald, :
Т.е. если функция умножает 2 числа, то я не могу передать два одинаковых числа, чтобы получить квадрат?
В примере показаны изменяемые ссылки. Изменять одину и ту же память по двум разным ссылкам — небезопасно потому что ты поломаешь память по a, получишь не пойми что и с b словишь легфолт или UB.
Если память менять не надо, а нужено вернуть квадрат (функция вообще чистая) — никаких проблем
fn mul(a: &i32, b: &i32) -> i32 {
a * b
}