N o. You didn't catch what I meant. I meant it should be like an equation. If foo is a RangeReplaceableCollection, foo minus foo equates zero, zero means an empty collection. Both side of the equation should be with the same unit, the unit is RangeReplaceableCollection. Below code also shows init() is useful in RangeReplaceableCollection.
var foo = Array<Int>() > > foo.append(contentsOf: [2,4,6,8]) > Zhaoxin On Wed, Jul 6, 2016 at 10:07 PM, Tim Vermeulen <tvermeu...@me.com> wrote: > You wouldn’t need an empty initialiser to remove all elements from a > collection, right? You could just use `replaceRange` instead. > > > Now I understood you concerns. Have you ever thought of if a non-empty > RangeReplaceableCollection being removed all of its elements, which makes > the collection to be an empty collection. That shouldn't change > theRangeReplaceableCollection to be a non-RangeReplaceableCollection. Sothe > empty collection must also be aRangeReplaceableCollection. > > > > > init() > > > (file:///Users/zhaoxin/Library/Application%20Support/Dash/DocSets/Apple_API_Reference/Apple_API_Reference.docset/Contents/Resources/Documents/ > developer.apple.com/reference/swift/rangereplaceablecollection/1641467-init.html)> > Creates a new, empty collection. > > > > Zhaoxin > > > > On Wed, Jul 6, 2016 at 9:09 PM, Tim Vermeulen<tvermeu...@me.com(mailto: > tvermeu...@me.com)>wrote: > > > I’m not allowing generic subscripts. The collection is declared as > `AnyIndexArray<Index: Strideable, Element where Index.Stride == Int>` and > it can be subscripted with type `Index`. > > > > > > Either way, it’s not really important. I’m mostly wondering why > RangeReplaceableCollection needs an empty initialiser. > > > > > > >Then how you defined the index to conform toStrideable? Below code > does work as it seams that you can't use generics in subscripts. > > > > > > > > > > > >subscript<T:Strideable>(index:T) ->Element > > > > > > > > > > > > > > > > > > > > > > > > > > > >Zhaoxin > > > > > > > > > > > > > > > > > > > >On Wed, Jul 6, 2016 at 8:32 PM, Tim Vermeulen<tvermeu...@me.com > (mailto:tvermeu...@me.com)(mailto:tvermeu...@me.com)>wrote: > > > >> > > > >>>On 6 Jul 2016, at 14:03, Zhao Xin<owe...@gmail.com(mailto: > owe...@gmail.com)(mailto:owe...@gmail.com)>wrote: > > > >>>According to the document of Swift 3, Array has already conformed > protocolRangeReplaceableCollection. > > > >> > > > >>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< > swift-users@swift.org(mailto:swift-users@swift.org)(mailto: > swift-users@swift.org)>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 > > > >>>>swift-users@swift.org(mailto:swift-users@swift.org)(mailto: > swift-users@swift.org) > > > >>>>https://lists.swift.org/mailman/listinfo/swift-users > > > >>> > > > >> > > > > > > > > > > > > > > > > > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users