It is an performance optimization for both time and memory.
The ReverseRandomAccessCollection
presents the elements of the
original array in reverse order, without the need to create a new array
and copying all elements (as long as the original array is not
mutated).
You can access the reversed elements with subscripts:
let el0 = arr[arr.startIndex]
let el2 = arr[arr.startIndex.advancedBy(2)]
or
for i in arr.indices {
print(arr[i])
}
You can also create an array explicitly with
let reversed = Array(["Mykonos", "Rhodes", "Naxos"].reversed())
A dictionary is also a sequence of Key/Value pairs. In
let dict = ["greek" : "swift sometimes", "notgreek" : "ruby for this example"].reverse()
a completely different reversed()
method is called:
extension SequenceType {
/// Return an `Array` containing the elements of `self` in reverse
/// order.
///
/// Complexity: O(N), where N is the length of `self`.
@warn_unused_result
public func reversed() -> [Self.Generator.Element]
}
The result is an array with the Key/Value pairs of the dictionary
in reverse order. But this is of limited use because the order
of the Key/Value pairs in a dictionary can be arbitrary.