Objective-C中for循环到Swift的渐变

Objective-C

// 遍历循环
for (NSInteger i = 0; i < 5; i++) {
    NSLog(@"OC循环:%ld", i);
}

Swift

// 输出 1 2 3 4 5
for i in stride(from: 1, through: 5, by: 1) {
    print("第一个:\(i)")
}
// 输出 1 2 3 4    
for i in stride(from: 1, to: 5, by: 1) {
    print("第二个:\(i)")
 }
 // 输出 1 3  
for i in stride(from: 1, to: 5, by: 2) {
    print("第三个:\(i)")
}
// 1 2 3 4 5    
for i in 1...5 {
    print("第四个:\(i)")
}
 // 1 2 3 4  
for i in 1..<5 {
    print("第五个:\(i)")
}

stride 是 Strideable 协议中定义的一个方法, 它可以按照指定的递进值生成一个序列。可以用在 Swift 的循环语法结构中。

总结:

  1. 在Swift中,直接使用for in来实现for循环,其中stride through生成了1到5的遍历队列,类似于range方法的...stride to生成了1到4的遍历队列,类似于range方法的..<
  2. stride 相比 range 语法的方式会更加灵活, 我们可以指定索引递增的步长。 总体来说如果一般的顺序遍历,使用 range 语法会更加简单。 如果你的循环逻辑有特殊要求, 那么 stride 可以更好的满足。
  3. 注意 stride 方法返回的类型, 分别是 StrideThrough 和 StrideTo, 他们都继承自 SequenceType。 也就是说我们作用于集合类型的方法也可以应用于 stride 生成的序列
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容