Как стать автором
Обновить

Комментарии 5

Для полей единичного типа (()) такое предупреждение не будет генерироваться для облегчения миграции существующего кода без изменения индексов кортежа.

Кто-нибудь может объяснить мне эту часть? Получается, что если есть кортеж вида (u8, (), u16) и "среднее" поле не используется, то предупреждения не будет?.. Но к чему тут "облегчения миграции существующего кода без изменения индексов кортежа"?

Ну вот у вас был кортеж вида (u8, u8, u16), и оказалось что второй элемент нигде не используется. Если вы его удалите и получите (u8, u16) — вам придётся всюду переделывать обращение к третьему элементу на обращение ко второму. Поэтому предлагается использовать вариант (u8, (), u16), который столь же оптимален по памяти — но не требует переделывания обращений.

Теперь дошло, спасибо за объяснение!


Хотя я бы всё-таки поправил индексы, если это, конечно, не публичное апи, которое не хочется лишний раз ломать.

Если это публичное API, то изменение типа с u8 на () его уже сломало :D

И то правда. (:


Можно ещё порассуждать о кортежах из больше чем двух элементах в публичном апи...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории