Re[8]: Имя истинного врага - миссионеры.
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.08.25 08:21
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Самое дикое что там на уровне языка размер массива (метод len) это usize, а значит даже просто написать v.len()-1 нельзя, это потенциально опасная операция.


И как в Расте выглядит уменьшение размера массива на 1?
Re[5]: Имя истинного врага - миссионеры.
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.08.25 08:25
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Вот у тебя одна либа генерирует изображение в котором выдает координаты u64 а другая которая сохраняет принимает координаты в u32. В русте такой шизы очень много. Я спрашивал типа сделайте int64 для всех и не трахайте голову, а мне втирают что это примитив обсешшон и он приведет к проблемам. Ну пока что проблемы с тем что приходится принудительно писать касты и разбирать отдельно случай вычитания большего из меньшего


Тут есть та тонкость, что в JPEG-е, например, на размер изображения отведено всего лишь 16 бит, и практические размеры при высоких (но вполне достижимых) разрешениях очень близко подходят к этой черте.

Поэтому тут надо аккуратно выплясывать, а не просто конвертнуть в подходящий универсально-широкий тип.
Re[9]: Имя истинного врага - миссионеры.
От: T4r4sB Россия  
Дата: 26.08.25 08:41
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, T4r4sB, Вы писали:


TB>>Самое дикое что там на уровне языка размер массива (метод len) это usize, а значит даже просто написать v.len()-1 нельзя, это потенциально опасная операция.


Pzz>И как в Расте выглядит уменьшение размера массива на 1?



Уменьшение или вычисление в котором промежуточный результат это размер минус единица?
Если ты уверен что массив не пустой то просто v.len()-1. А если нет то дальше начинаются неприятные краевые случаи которые на нормальных знаковых типах разруливаются сами собой а на беззнаковых выстреливают в рантайме
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.