美文网首页
Objective-C中for循环到Swift的渐变

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

作者: Gary_fei | 来源:发表于2016-12-19 16:02 被阅读0次

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 生成的序列

相关文章

网友评论

      本文标题:Objective-C中for循环到Swift的渐变

      本文链接:https://www.haomeiwen.com/subject/lpetvttx.html