Вложенные типы в Swift - что такое хорошая практика?
У меня есть swiftlint
предупреждение, которое беспокоит меня.
warning: Nesting Violation: Types should be nested at most 1 level deep (nesting)
Тем не менее, вложение структур является устоявшейся техникой программирования, и многие ее поддерживают.
Редактировать: Действительно, @vadian указывает на правило руководства языка Swift: чтобы вложить тип в другой тип, напишите его определение во внешних скобках того типа, который он поддерживает. Типы могут быть вложены в любое количество уровней.
Я знаю, что это конфликтует с использованием дженериков, и что XCode может стать невыносимо медленным. На самом деле это была (из-за измерения самых медленных точек компиляции) причина, по которой я начал смотреть на это правило вложенности.
В чем причина правила ворса и какова хорошая практика в этом отношении? Пожалуйста, укажите технические причины, а не чисто основанные на мнении советы.
У Microsoft на самом деле есть страница о вложенных типах, и когда они уместны. Хотя он не нацелен на Swift, у него есть некоторые интересные языковые мысли.
1 ответ
После долгих поисков я обнаружил лишь замечание @jpsim о том, что "идея правила вложения заключается в том, чтобы избегать сложных интерфейсов".
Поэтому, кроме проблем с компилятором, изложенных в моем вопросе, которые в конечном итоге исчезнут, похоже, нет никаких технических причин для этого правила.