I would suggest enumerate only for types that are subscriptable and that it
be defined as their (index, value) set that iterates in the collection's
indices order. IE:
for index in collection.indices {
let value = collection[index]
...
}
and
for (index, value) in collection.enumerate {
...
}
are equivalent.
With the above definition I would suggest a name change to entries, since a
Dictionary's keys are not necessarily numbers, hence enumerate is
misleading.
Nothing for Set since it isn't subscriptable.
On Saturday, 16 April 2016, Brent Royal-Gordon <[email protected]>
wrote:
> > I would suggest an alternative; changing Range so that it is indexed
> like an array, an Int from 0 to count - 1. Such that aRange[index] is
> defined as start + index * stride. This will eliminate the problems with
> enumerate. A Range's generic type would be constrained to be an Arithmetic
> type, see extended floating point proposal.
>
> That papers over the problem for Slice/Range specifically, but it doesn't
> fix it for types with non-integer indices, like Dictionary and Set.
> enumerate() is not meant to be used for the purpose to which it is usually
> put.
--
-- Howard.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution