Здравствуйте, T4r4sB, Вы писали:
TB>Самое дикое что там на уровне языка размер массива (метод len) это usize, а значит даже просто написать v.len()-1 нельзя, это потенциально опасная операция.
И как в Расте выглядит уменьшение размера массива на 1?
Здравствуйте, T4r4sB, Вы писали:
TB>Вот у тебя одна либа генерирует изображение в котором выдает координаты u64 а другая которая сохраняет принимает координаты в u32. В русте такой шизы очень много. Я спрашивал типа сделайте int64 для всех и не трахайте голову, а мне втирают что это примитив обсешшон и он приведет к проблемам. Ну пока что проблемы с тем что приходится принудительно писать касты и разбирать отдельно случай вычитания большего из меньшего
Тут есть та тонкость, что в JPEG-е, например, на размер изображения отведено всего лишь 16 бит, и практические размеры при высоких (но вполне достижимых) разрешениях очень близко подходят к этой черте.
Поэтому тут надо аккуратно выплясывать, а не просто конвертнуть в подходящий универсально-широкий тип.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, T4r4sB, Вы писали:
TB>>Самое дикое что там на уровне языка размер массива (метод len) это usize, а значит даже просто написать v.len()-1 нельзя, это потенциально опасная операция.
Pzz>И как в Расте выглядит уменьшение размера массива на 1?
Уменьшение или вычисление в котором промежуточный результат это размер минус единица?
Если ты уверен что массив не пустой то просто v.len()-1. А если нет то дальше начинаются неприятные краевые случаи которые на нормальных знаковых типах разруливаются сами собой а на беззнаковых выстреливают в рантайме
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте