делаешь так:
let mut a = 5;
a = 6;
То a просто начинает указывать на другое значение в памяти, а первое остаётся.
А когда так:
let a = &mut 5;
*a = 6;
То доп места для ещё одного инта не выделяется и мы меняем то же самое значение в памяти?
вторая запись не пройдет борроу чек.
нет, a указывает всегда на одну и ту же область памяти.
Да вроде это нормально компилится
А в чем смысл использовать &mut тогда?
чтобы передавать в другие функции.
для этого нужны гаты :(
Обсуждают сегодня