Swift

时间:2018-03-16 04:14:21

标签: swift control-flow stride

两个步幅功能有什么区别?

stride(from:to:by)& (from:through:by)

在完成教程的同时,Control flow with stride我发现根据我的知识,两种类型的步幅功能都是一样的,我不知道它们之间有什么区别,因此任何人都可以解释?

使用步幅(从:到:by:)

let minutes = 60
let minuteInterval = 5
for tickMark in stride(from: 0, to: minutes, by: minuteInterval) {
    // render the tick mark every 5 minutes (0, 5, 10, 15 ... 45, 50, 55)
}

使用stride(from:through:by :)代替:

let hours = 12
let hourInterval = 3
for tickMark in stride(from: 3, through: hours, by: hourInterval) {
    // render the tick mark every 3 hours (3, 6, 9, 12)
}

1 个答案:

答案 0 :(得分:3)

stride(from:through:by:)

  

返回值序列(self, self + stride, self + 2 * stride, … last),其中 last 是进度小于或等于结束的最后一个值。

stride(from:to:by:)

  

返回值(self, self + stride, self + 2 * stride, … last)的序列,其中 last 中小于结束的最后一个值。

请注意粗体文字的区别。

[0...10]等封闭范围与[0..<10]等开放范围之间存在差异。