Re[6]: мутабельные слайсы и borrow checker
От: sergii.p  
Дата: 16.02.23 11:51
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Напомню что параметры для вызова функции всегда считаются слева направо. Это важно.


начал вас понимать, похоже. Только тут всё же немного не то. У нас один параметр в функции (и как раз не важно откуда считаются параметры). Только вызываем каскадно. Т.е.

let last = nums.len() - 1;
let slice = nums.index_mut(1..last);
foo(&mut slice);


и этот код вполне валиден. Короче, главный мой посыл: len вызывается до получения мутабельной ссылки, а не после. Нельзя получить slice без расчёта last.
Если бы было что-то вроде
foo(&mut nums, nums.len());

я бы даже согласился с такими доводами, хотя и то, не факт, что это мои проблемы разруливать здесь зависимости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.