On 8 Apr 2016, at 13:48, tuuranton--- via swift-users <swift-users@swift.org> wrote:
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 <mailto: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 <mailto: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 <mailto: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 <mailto: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