Swift 中的嵌套类型 - 什么是好的做法?
Nested types in Swift - what is the good practice?
我有一个 swiftlint
警告困扰着我。
warning: Nesting Violation: Types should be nested at most 1 level deep (nesting)
但是,结构的嵌套是一种既定的编程技术,quite a few people advocate。
编辑:
事实上,@vadian 指出了 Swift language guide 的规则:要将一个类型嵌套在另一个类型中,请将其定义写在它支持的类型的外括号内。 类型可以根据需要嵌套到任意多的层级。
我知道它clashes with the use of generics, and that Xcode may become unbearably slow. It actually was (through measuring 最慢的编译点)我开始研究这个嵌套规则的原因。
lint 规则的原因是什么,这方面的好的做法是什么?请指出技术原因,而不是纯粹基于意见的建议。
微软其实有一个page about nested types,而且在合适的时候。虽然它不是针对 Swift,但它确实有一些有趣的跨语言思想。
经过大量搜索,我只找到 @jpsim's remark "the idea behind the nesting rule is to avoid complex interfaces"。
因此,除了我的问题中概述的最终会消退的编译器问题之外,似乎没有这条规则的任何技术原因。
我有一个 swiftlint
警告困扰着我。
warning: Nesting Violation: Types should be nested at most 1 level deep (nesting)
但是,结构的嵌套是一种既定的编程技术,quite a few people advocate。
编辑: 事实上,@vadian 指出了 Swift language guide 的规则:要将一个类型嵌套在另一个类型中,请将其定义写在它支持的类型的外括号内。 类型可以根据需要嵌套到任意多的层级。
我知道它clashes with the use of generics, and that Xcode may become unbearably slow. It actually was (through measuring 最慢的编译点)我开始研究这个嵌套规则的原因。
lint 规则的原因是什么,这方面的好的做法是什么?请指出技术原因,而不是纯粹基于意见的建议。
微软其实有一个page about nested types,而且在合适的时候。虽然它不是针对 Swift,但它确实有一些有趣的跨语言思想。
经过大量搜索,我只找到 @jpsim's remark "the idea behind the nesting rule is to avoid complex interfaces"。
因此,除了我的问题中概述的最终会消退的编译器问题之外,似乎没有这条规则的任何技术原因。