LINUX.ORG.RU

История изменений

Исправление 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
}