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 swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users