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

Reply via email to