stride 是 Swift 中生成连续值序列的一个函数(类似于 Python 的 range()),它可以生成等间距的数值序列。
基本语法
stride(from: 起始值, through: 结束值, by: 步长)
或
stride(from: 起始值, to: 结束值, by: 步长)
代码示例
let stridesThrough = Array(stride(from: 0, through: 20, by: 5))print(stridesThrough) // [0, 5, 10, 15, 20]
1)stride(from:through:by:):从指定的起点开始,每次增加指定的步长,直到到达或穿过终点。
from:起始值(包含)。
through:终止值(包含)。
by:步长,可以是正数(递增)或负数(递减)。
特点:包括终点。
let stridesTo = Array(stride(from: 0, to: 20, by: 5))
print(stridesTo) // [0, 5, 10, 15]
2)stride(from:to:by:):从指定的起点开始,每次增加指定的步长,直到到达(但不包括)终点。
from:起始值(包含)。
to:终止值(不包含)。
by:步长,可以是正数(递增)或负数(递减)。
特点:不包括终点。
遍历序列
可以使用for-in语句遍历stride:
for i in stride(from: 0, through: 10, by: 2) {
print(i)
}
// 输出: 0, 2, 4, 6, 8, 10
也可以倒序:
for i in stride(from: 10, through: 0, by: -2) {
print(i)
}
// 输出: 10, 8, 6, 4, 2, 0
注意事项
1)步长不能为 0:
设置 by: 0 会导致运行时崩溃。
2)步长的正负:
by 为正数时,from 必须小于 to/through。
by 为负数时,from 必须大于 to/through。
总结
最后关于stride的知识,可以总结为from开始,through是穿过终点,to是到达终点。所以from-througn会显示终点,而to的跨度比through低,所以from-to不会显示终点。最后按照by的跨度生成对应的序列。
From起点,through/to是终点,by是跨度。