swift小知识之Stride函数

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

  • from to

    其中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

    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参数(步长)

    示例一:to,不包含末尾
    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]]

     

posted on 2022-05-12 17:01  梁飞宇  阅读(931)  评论(0)    收藏  举报