хотя обращение идет ЛИШЬ К ОТДЕЛЬНЫМ ПОЛЯМ! Ничего не сломается же! так, например, vec.resize затронет массив, который заборровлен, но почему же нельзя изменить какое-то безобидное поле в векторе? И то, вектор это "одно целое как бы", но классы/структуры, описывающие логику, как правило состоят из множетсва различных не связанных между собой полей.. А борров чекер считает их одним целым.
Окей. Повторю некий пример, что писал ранее. Напиши мне трейт с геттерами, который fn get_a_mut(&mut self) -> &mut u32, и вызови эти 2 метода подряд.. ты ж хочешь получить отдельные поля.. а в итоге боровишь всю структуру. Приходится извращаться и:либо писать менее оптимальный код, например, разбивая на 2 отдельных цикла, либо обманывать борроу чекер. В нынешней реализации он скорее зло.
ты либо тролишь либо не понимаешь назначение мув семантики
Обсуждают сегодня