Hi,
I defined this:
func random(from r: Range<Int>) -> Int {
let from = r.lowerBound
let to = r.upperBound
let rnd = arc4random_uniform(UInt32(to-from))
return from + Int(rnd)
}
so that I can do:
let testRandomValue = random(from: 4..<8)
But this will not let me do:
let otherTestRandomValue = random(from: 4...10)
The error message is a bit cryptic:
“No ‘…’ candidate produce the expected contextual result type ‘Range<Int>’”
What is happening is that 4…10 is not a Range, but a ClosedRange.
Of course I can overload my function above to add a version that takes a
ClosedRange.
But this is not very DRY.
What would be a more idiomatic way?
Thanks,
Jean-Denis
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users