The problem with both solutions is that I lose the type information. Instead of i being UInt8 it is Int or UInt. This is one solution I came up with: extension UInt8 { static var allValues: [UInt8] { var v: [UInt8] = [] for i in 0..<UInt8.max { v.append(i) } v.append(UInt8.max) return v }} print(UInt8.allValues) In other words, loop from 0 to 254 and then add 255 manually at the end. Is there currently no simpler way to do this in Swift? Idea for the Swift developers: Create a Bounded protocol that UInt8 (and the other integer types) conform to. Then add a "allValues" type method in that protocol. And also put .min and .max into that protocol. Currently it seems like .min and .max are not a part of any particular protocol.
8. Apr 2016 14:35 by swift-users@swift.org: > You could cast the min and max values to an Int and iterate through the Int > range: > let> min = > Int> (> UInt8> .min)> let> max = > Int> (> UInt8> .max) > for> i > in> > min> ...> max> {> > print> (i)> } > While this will work it seems like a hack to me and Milos’ solution is more > elegant… > -Pete > > >> On Apr 8, 2016, at 5:50 AM, tuuranton--- via swift-users <>> >> swift-users@swift.org>> > wrote: >> >> I forgot to mention that I really would like to have i have >> type UInt8 within the loop. And since i is UInt8 it makes sense it should >> be able to take the values UInt8.min and UInt8.max (and all the values >> between). >> >> 8. Apr 2016 11:48 by >> swift-users@swift.org>> : >> >> >>> >>> print(UInt8.min) //0 >>> >>> print(UInt8.max) //255 >>> >>> >>> >>> >>> //Is there an easy way to loop between all values >>> >>> //between (and including both) UInt8.min and UInt8.max? >>> >>> >>> >>> >>> //This doesn't work. >>> >>> //Runtime crash because UInt8.max has no successor. >>> >>> for i in UInt8.min...UInt8.max { >>> >>> print(i) >>> >>> } >>> >>> >> >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org >> https://lists.swift.org/mailman/listinfo/swift-users >> > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users