我swiftlint警告我。
swiftlint
warning: Nesting Violation: Types should be nested at most 1 level deep (nesting)
然而,结构的嵌套是既定的编程技术,以及相当一些人在坚持它。
编辑:确实@vadian指出了Swift语言指南的规则: 要将类型嵌套在另一个类型中,请在其支持的类型的大括号内写入其定义。 类型可以嵌套到所需的多个级别 。
我知道它与泛型的使用发生冲突,并且Xcode可能会变得异常缓慢。实际上(通过测量最慢的编译点)是我开始研究此嵌套规则的原因。
实行皮棉规则的原因是什么?在这方面的良好做法是什么? 请指出技术原因,而不是纯粹基于意见的建议。
Microsoft实际上有一个有关嵌套类型以及何时合适的页面。尽管它不是针对Swift的,但它确实具有一些有趣的跨语言思想。
经过大量搜索后,我发现@jpsim的评论是“嵌套规则背后的想法是避免复杂的接口”。
因此,除了我的问题中概述的编译器问题(这些问题最终会消退)之外,似乎 没有 任何技术原因可适用此规则。