[swift-evolution] [Idea] Replace enumerate() with something more explicit

Brent Royal-Gordon brent at architechies.com
Fri Apr 15 22:48:37 CDT 2016

> 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. 

More information about the swift-evolution mailing list