美文网首页
Swift 中for in 和forEach的区别

Swift 中for in 和forEach的区别

作者: 向日葵的夏天_summer | 来源:发表于2018-12-25 11:08 被阅读0次

    在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
    

    相关文章

      网友评论

          本文标题:Swift 中for in 和forEach的区别

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