一尘不染

斯威夫特3:用浮点增量替换C样式的for循环

swift

我的应用程序中存在这样的循环:

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

hueIncrementfloat ,因此我不能使用如下范围运算符:..<

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


阅读 222

收藏
2020-07-07

共1个答案

一尘不染

您可以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){
    //....
}
2020-07-07