Swift 中for in 和forEach的区别

在swift中,for循环和forEach非常类似,但是又有着不同之处。

1. 相同之处

for循环遍历数组元素时:
for element in [1, 2, 3] {
    print("for --- \(element)")
}
打印结果:
for --- 1
for --- 2
for --- 3

forEach遍历时:
[1, 2, 3].forEach { element in
    print("forEach -- \(element)")
}
打印结果:
forEach -- 1
forEach -- 2
forEach -- 3

这两者看起来是相同的。

2. 不同之处

  • return表示的含义不同
  • 在forEach中不能使用continue和break关键字

首先,在for循环中,符合条件的return语句会结束整个循环过程;而在forEach中,return不能反悔到外部函数的作用域之外,所以并不会终止循环,仅仅是从闭包中返回。

1. for循环中使用return:

for element in [1, 2, 3, 4] {
     if element == 2 { return }
     print("for --- \(element)")
 }
结果:
for --- 1


2. forEach中使用return关键字:

[1, 2, 3, 4].forEach { element in
    if element == 2 { return }
    print("forEach -- \(element)")
}
结果:
forEach -- 1
forEach -- 3
forEach -- 4

3. forEach中使用continue关键字

[1, 2, 3, 4].forEach { element in
     if element == 2 { continue }
     print("forEach -- \(element)")
 }
报错: 'continue' is only allowed inside a loop

4. forEach中使用break关键字

[1, 2, 3, 4].forEach { element in
     if element == 2 { break }
     print("forEach -- \(element)")
}
报错:Unlabeled 'break' is only allowed inside a loop or switch, a labeled break is required to exit an if or do
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容