Вложенные типы в Swift - что такое хорошая практика?

У меня есть swiftlint предупреждение, которое беспокоит меня.

warning: Nesting Violation: Types should be nested at most 1 level deep (nesting)

Тем не менее, вложение структур является устоявшейся техникой программирования, и многие ее поддерживают.

Редактировать: Действительно, @vadian указывает на правило руководства языка Swift: чтобы вложить тип в другой тип, напишите его определение во внешних скобках того типа, который он поддерживает. Типы могут быть вложены в любое количество уровней.

Я знаю, что это конфликтует с использованием дженериков, и что XCode может стать невыносимо медленным. На самом деле это была (из-за измерения самых медленных точек компиляции) причина, по которой я начал смотреть на это правило вложенности.

В чем причина правила ворса и какова хорошая практика в этом отношении? Пожалуйста, укажите технические причины, а не чисто основанные на мнении советы.

У Microsoft на самом деле есть страница о вложенных типах, и когда они уместны. Хотя он не нацелен на Swift, у него есть некоторые интересные языковые мысли.

1 ответ

Решение

После долгих поисков я обнаружил лишь замечание @jpsim о том, что "идея правила вложения заключается в том, чтобы избегать сложных интерфейсов".

Поэтому, кроме проблем с компилятором, изложенных в моем вопросе, которые в конечном итоге исчезнут, похоже, нет никаких технических причин для этого правила.

Другие вопросы по тегам