> On 6 Jul 2016, at 14:03, Zhao Xin <[email protected]> wrote: > > According to the document of Swift 3, Array has already conformed protocol > RangeReplaceableCollection.
That’s exactly why I also want to conform my wrapper to that protocol? I think there’s a misunderstanding. I’m making a collection that can be subscripted with any index (that conforms to Strideable), but behaves like an array otherwise. > > Zhaoxin > > On Wed, Jul 6, 2016 at 7:09 PM, Tim Vermeulen via swift-users > <[email protected] <mailto:[email protected]>> wrote: > RangeReplaceableCollection has three initialisers: init(), init(_:) and > init(repeating:count:). The latter two are implemented using the empty > initialiser. But why are these initialisers part of this particular protocol? > As far as I can tell, no other methods of this protocol depend on these > initialisers. The requirement of the empty initialiser makes it impossible to > have a collection conform to this protocol that needs additional data for its > initialisation. > > For instance, I was making an array that works with any Strideable indices, > not just integers. A startIndex is needed for its initialisation, so I can’t > really conform it to RangeReplaceableCollection. If I do it anyways (with a > fatalError() in the required empty initialiser) everything seems to work just > fine, except for the protocol’s three initialisers. > > Perhaps these initialisers should be moved to a (possible new) different > protocol? > _______________________________________________ > swift-users mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-users > <https://lists.swift.org/mailman/listinfo/swift-users> >
_______________________________________________ swift-users mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-users
