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 <br...@architechies.com> 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 swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution