+1 very handy to associate types together On Friday, 29 April 2016, Michael Peternell via swift-evolution < [email protected]> wrote:
> I think that would be a good feature. > > > Am 28.04.2016 um 19:15 schrieb Brad Hilton via swift-evolution < > [email protected] <javascript:;>>: > > > > Type nesting allows some convenient and straightforward semantics that > we see inside the Swift standard library such as views on String like > String.CharacterView, String.UnicodeScalarView, etc. However a protocol > cannot be nested in a type and gives a non-obvious error that the > “Declaration is only valid at file scope.” Just as other nested types allow > proper contextual scoping, a nested protocol could make a lot sense for a > number of patterns. For example, there are many “Delegate” protocols > throughout the Cocoa frameworks. Here’s a controller/delegate pattern > before and after type nesting: > > > > // Without type nesting > > > > protocol MyControllerDelegate : class { > > > > } > > > > class MyController { > > > > weak var delegate: MyControllerDelegate? > > > > } > > > > // With type nesting > > > > class MyController { > > > > weak var delegate: Delegate? > > > > protocol Delegate : class { > > > > } > > > > } > > > > Though the change is mostly semantics, it does allow an explicit > association between My Controller and the Delegate instead of only a named > association. It also cleans up the module name space like other nested > types and makes associated protocols more discoverable in my opinion. > > > > I’d love to hear everyone’s thoughts. > > > > Brad Hilton > > _______________________________________________ > > swift-evolution mailing list > > [email protected] <javascript:;> > > https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > [email protected] <javascript:;> > https://lists.swift.org/mailman/listinfo/swift-evolution > -- -- Howard.
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
