No problem! But no, count is correct. From the docs: “endIndex: The 
collection's "past the end" position---that is, the position one greater than 
the last valid subscript argument."

> On 28 Jun 2016, at 22:45, Roy Henderson <[email protected]> wrote:
> 
> Definitely not trying to correct your code Tim - but, being a Swift-101 guy, 
> I'm confused by endIndex as count. Should it not be count - 1?
> 
> Roy
> 
> On 28 Jun 2016, at 20:45, Tim Vermeulen via swift-users 
> <[email protected] <mailto:[email protected]>> wrote:
> 
>> I expected the following code to compile:
>> 
>> struct Wrapper<Element>: BidirectionalCollection {
>>     
>>     var elements: [Element]
>>     
>>     var startIndex: Int { return 0 }
>>     var endIndex: Int { return elements.count }
>>     
>>     func index(after index: Int) -> Int { return index + 1 }
>>     func index(before index: Int) -> Int { return index - 1 }
>>     
>>     subscript(position: Int) -> Element {
>>         return elements[position]
>>     }
>>     
>> }
>> 
>> However, I got a long list of errors. I tried adding this:
>> 
>> extension Wrapper {
>>     
>>     subscript(bounds: Range<Int>) -> BidirectionalSlice<Wrapper> {
>>         return BidirectionalSlice(base: self, bounds: bounds)
>>     }
>>     
>> }
>> 
>> But not Xcode shows an interesting error message: “Type 
>> `Wrapper<Element>.Index` does not conform to protocol `Comparable`”. Surely, 
>> Wrapper<Element>.Index is just Int which can be inferred from the startIndex 
>> property, for example. I tried setting the Index type explicitly:
>> 
>> struct Wrapper<Element>: BidirectionalCollection {
>>     typealias Index = Int
>>     ...
>> }
>> 
>> Now the code finally compiles. Bug?
>> _______________________________________________
>> 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

Reply via email to