public class Container2: RandomAccessCollection {
public typealias Indices = DefaultRandomAccessIndices<Container2>; public typealias Index = Int; //typealias SubSequence = Container2; public var arr:[Int] = [1,2,3,4,5]; public var endIndex: Index { return 5; } public var startIndex:Index{ return 0; } public func index(after i: Int) -> Int{ return i+1; } public subscript(position: Int) -> Int{ get{ return arr[position]; } set{ arr[position] = newValue; } } /*func index(before i: Int) -> Int{ return i-1; }*/ public subscript(bounds: Range<Int>) -> Container2{ get{ return Container2(); } set{ } } } I'm trying to adopt the RandomAccessCollection protocol from a class. I deliberately leave out the func index(before:) function because there is already a default implementation of that function in RandomAccessCollection. I do understand that that function's implementation is required because of BiDirectionalCollection from which RandomAccessCollection inherits. My question is why would the compiler complain that func index(before:) implementation is required when there is already a default implementation in RandomAccessCollection that i can use? Thanks.
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users