'...'的重载存在以下结果类型:闭合范围<Bound>、可计数闭合范围<Bound>



Swift 2

let gap = CGFloat(randomInRange(StackGapMinWidth...maxGap))

调用中缺少参数标签"范围:">

Swift 3- 新错误

let gap = CGFloat(randomInRange(range: StackGapMinWidth...maxGap))

没有"..."候选项生成预期的上下文结果类型"范围">

"..."的重载存在以下结果类型:闭合范围、可数闭合范围

从 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)

最新更新