Assume i have the following code
var dictionary = [\"cat\": 2,\"dog\":4,\"snake\":8]; // mutable dictionary
var keys = dictionary.keys
var values = dictionary.
The definition of the keys
and values
property is preceded by the following
comments:
/// A collection containing just the keys of `self`
///
/// Keys appear in the same order as they occur as the `.0` member
/// of key-value pairs in `self`. Each key in the result has a
/// unique value.
var keys: LazyBidirectionalCollection> { get }
/// A collection containing just the values of `self`
///
/// Values appear in the same order as they occur as the `.1` member
/// of key-value pairs in `self`.
var values: LazyBidirectionalCollection> { get }
My interpretation of
Keys/Values appear in the same order as they occur as the
.0
/.1
member of key-value pairs inself
.
is that dictionary.keys
and dictionary.values
return the keys and values in
"matching" order.
So the key-value pairs of a dictionary do not have a specified order, but
the first, second, ... element of dictionary.values
is the dictionary value corresponding to the first, second, ... element of dictionary.keys
.