Swift 中for in 和forEach的区别

2018-12-25  本文已影响0人  向日葵的夏天_summer

在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. 不同之处

首先,在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
上一篇 下一篇

猜你喜欢

热点阅读