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

时间:2016-04-07 07:44:09

标签: 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))
}

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

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

1 个答案:

答案 0 :(得分:16)

你可以使用步幅函数stride(through:, by:) ......就像

一样
for hue in (minHue).stride(through: maxHue, by: hueIncrement){
    // ...
}

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

for hue in stride(from: minHue, through: maxHue, by: hueIncrement){
    //....
}