swift stride函数 数组分割 分组

stride函数,为可变步长类型值的序列

其中from to,最后一个值将会小(大)于to的值

for index in stride(from:0, to:3, by:1)  {
    print(index)
}
// print 0, 1, 2
for index in stride(from:3, to:0, by:-1) {
    print(index)
}
// print 3,2,1

from through,最后一个值将会小(大)于等于through的值

for index in stride(from:0, through:3, by:1)  {
    print(index)
}
// print 0, 1, 2, 3
for index in stride(from:3, through:0, by:-1)  {
    print(index)
}
// print 3,2,1,0

调整by参数(步长)

for index in stride(from: 0, to: 9, by: 3) {
    print(index)
}
// print 0, 3, 6

//  through,包含末尾
for index in stride(from: 0, through: 9, by: 3) {
  print(index)
}
// prints 0, 3, 6, 9

数组分割
ps:步长与数组元素个数刚好整数倍,否则多出的元素会舍去

var array = Array(1...10)
let group1Arr = stride(from: 0, to: 8, by: 4).map {
    print(array[$0...$0+3])
}
//[1, 2, 3, 4]
//[5, 6, 7, 8]

let group2Arr = stride(from: 0, to: 8, by: 4).map {
      Array(array[$0...$0+3])
}
print(group2Arr) 
// [[1, 2, 3, 4], [5, 6, 7, 8]]

let step = 3
let finalArray = stride(from: 0, to: array.endIndex - (array.endIndex % step), by: step).map {
    Array(array[$0...$0+(step - 1)])
}
// step = 2
// [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
// step = 3
// [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,889评论 0 38
  • 世界胡杨看中国,中国胡杨看新疆! 新疆拥有世界上面积最大、分布最密集、存活最好的“第三纪活化石”天然的胡杨林,在全...
    热茶哥阅读 1,338评论 0 0
  • 书法艺术历数千载之演进,在宋代达到了一个高峰。 与宋代山水画一样,宋代书法形成了独特的审美趣味与美学特色:不满足于...
    云上文化阅读 831评论 0 1
  • 玛丽亚·蒙特梭利在《童年的秘密》里说:“儿童心理的发展,受其敏感性的指导。儿童的一切行为都是对的,他们每个行为背后...
    名人书馆阅读 1,023评论 0 6
  • 中国的教科书说教部分比较多,比较扯,所以直接看复习指南和大纲配套习题,真题,自己体会,不懂的百度。 加入自己的理解...
    ArimaKisho阅读 204评论 0 0