zoukankan      html  css  js  c++  java
  • [Swift]forEach详解

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ 
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/9944939.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    forEach(_:)

    调用以相同的顺序作为序列中的每个元件上的给定的闭合for- in循环。

    定义语法

    func forEach(_ body: ((offset: Int, element: Base.Element)) throws -> Void) rethrows

    参数

    一个闭包,它将序列的元素作为参数。

    以下示例中的两个循环生成相同的输出:

     1 let numberWords = ["one", "two", "three"]
     2 for word in numberWords {
     3     print(word)
     4 }
     5 // Prints "one"
     6 // Prints "two"
     7 // Prints "three"
     8 
     9 numberWords.forEach { word in
    10     print(word)
    11 }
    12 // Same as above

    使用方法是从一个独特的- 环在两个重要方面:forEachforin

    您不能使用break、continue语句退出当前的body闭包调用或跳过后续调用。

    使用闭包中的return语句body将仅从当前调用退出body,而不是从任何外部作用域退出,并且不会跳过后续调用。

    遍历同类型的泛型集合

     1 let arr = [1,2,3,4,5,6,7,8,9]
     2 //for循环
     3 for i in arr
     4 {
     5     print(i)
     6 }
     7 /*
     8 1
     9 2
    10 3
    11 4
    12 5
    13 6
    14 7
    15 8
    16 9
    17 */
    18 
    19 //forEach
    20 arr.forEach
    21 {
    22     (element) in
    23     print(element)
    24 }
    25 /*
    26 1
    27 2
    28 3
    29 4
    30 5
    31 6
    32 7
    33 8
    34 9
    35 */

    遍历不同类型的泛型集合

     1 let array = [1,2,3,4,5,"6","7","8","9"] as [Any]
     2 //for循环
     3 for element in array
     4 {
     5     //判断类型
     6     if element is Int
     7     {
     8         print(element)
     9     }
    10 }
    11 /*
    12 1
    13 2
    14 3
    15 4
    16 5
    17 */
    18 
    19 //forEach
    20 array.forEach 
    21 {
    22     (element) in
    23     //判断类型
    24     if element is String
    25     {
    26         print(element)
    27     }
    28 }
    29 /*
    30 6
    31 7
    32 8
    33 9
    34 */

    is: 用来判断某一个对象是否是某一特定的类,返回一个bool类型的值。

    as:类型对象转换

    as?:非强制类型转换,转换不成功返回nil

    as !:强制类型转换,转换不成功抛出异常

  • 相关阅读:
    使用线程新建WPF窗体(公用进度条窗体)
    WPF--模板选择
    WPF命令(Command)介绍、命令和数据绑定集成应用
    WPF 员工卡条形码
    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
    R语言——实验5-聚类分析
    R语言——实验5-聚类分析
    Java学习---流与文件
    Java学习---流与文件
    Java学习---异常处理
  • 原文地址:https://www.cnblogs.com/strengthen/p/9944939.html
Copyright © 2011-2022 走看看