Swift 3:用浮点增量替换c样式for-loop

kel*_*lin 2 ios swift

我的应用程序中有这样一个循环:

for var hue = minHue; hue <= maxHue; hue += hueIncrement
{
   let randomizedHue = UIColor.clipHue(
       Random.uniform(ClosedInterval(hue - dispersion, hue + dispersion))
   ) 
   colors.append(colorWithHue(randomizedHue))
}
Run Code Online (Sandbox Code Playgroud)

hueIncrement浮动的,所以我不能使用这样的范围运算符:..<.

在Swift 3中实现这种循环的最佳和最简洁的方法是什么?

EI *_*2.0 16

你可以使用步幅功能stride(through:, by:)..类似的东西

for hue in (minHue).stride(through: maxHue, by: hueIncrement){
    // ...
}
Run Code Online (Sandbox Code Playgroud)

Swift3.0,您可以使用stride(from:to:by:)stride(from:through:by:)语法

for hue in stride(from: minHue, through: maxHue, by: hueIncrement){
    //....
}
Run Code Online (Sandbox Code Playgroud)