Swift 2
let gap = CGFloat(randomInRange(StackGapMinWidth...maxGap))
缺少参数标签'范围:'在电话中
Swift 3 - 新错误
let gap = CGFloat(randomInRange(range: StackGapMinWidth...maxGap))
不,' ......'候选人产生预期的上下文结果类型'范围'
超载' ...'存在这些结果类型:ClosedRange,CountableClosedRange
答案 0 :(得分:7)
从Swift 3开始,..<
和...
会产生不同类型的范围:
..<
生成一个Range
(或CountableRange
,具体取决于基础类型),它描述了一个不包含上限的半开范围。...
生成ClosedRange
(或CountableClosedRange
),其中描述了包含上限的封闭范围。如果randomInRange()
计算给定范围内的随机数,
包括上限,则应将其定义为
func randomInRange(range: ClosedRange<Int>) -> Int {
// ...
}
您可以将其称为
let lo = 1
let hi = 10
let r = randomInRange(range: lo ... hi)