Ржавчина съела мозг

Jul 04, 2020 02:29

Почитываю rust, бо утратил веру в плюсы.

Вырисовывается какая-то странная картина. Подобно goшечке тут тоже нужно все преобразования типов делать ручками. Нельзя взять и просто добавить i8 к i32. Нужно первое в явном виде привести ко второму типу. Они там дебилы? Или они решили, что пользователи не смогут понять и запомнить, что т.н. расширяющие преобразования делаются автоматически и не приводят к потере значения? (за исключением, например, преобразования i32 в f32; подобные преобразования можно и не делать автоматически)

Ну и обычное... Тоже могли бы сравнение определить для всех комбинаций целочисленных типов и аналогично для комбинации обоих вещественных.

Не, приятно, что они там, например, реализовали все варианты обработки целочисленного переполнения в языке, но зачем пользователя насиловать совершенно лишней писаниной для преобразования типов?

Кстати о переполнениях, не могу сказать, что согласен с тем, что обычный оператор + ведёт себя по разному в отладочной и релизной сборках (проверка на переполнение вставляется в отладочной, но не релизной). Лучше было сделать одинаково и все четыре варианта оператора определить в кратких синтаксических формах (например, что-то типа + (с исключением), +% (по модулю), +| (с насыщением), +? (по модулю и с признаком переполнения)).

Отдельно доставляет ответ на вопрос «Что такое 1?», в смысле какого типа. Хотя, уже зная, что автоматического расширения типа нет, можно догадаться. Несколько смущает, что это нужно гуглить или выявлять экспериментально.

effectiveness, rust, stupid, technology, thoughts, c++, software

Previous post Next post
Up