美文网首页Swift
26.Swift学习之闭包在集合中的运用

26.Swift学习之闭包在集合中的运用

作者: YungFan | 来源:发表于2018-11-29 08:52 被阅读77次

闭包是Swift中一个重要的知识点,不仅在开发中能够帮助解决很多问题(如逆向传值),而且在许多官方系统库方法中都能看到它的身影,尤其是在集合中提供了很多函数来对元素进行访问及操作,这些函数大量使用了闭包。重点需要掌握的函数有: sort、forEach、filter、map、reduce。

准备一个数组

//准备一个数组
var array:[String] = ["Animal", "Baby", "Apple", "Google", "Aunt"];

1. sort排序

//这种默认是升序
array.sorted()
//如果要降序
array.sort { (str1, str2) -> Bool in
    return str1 > str2
}

2. forEach遍历

array.forEach( {str in   
    print(str)
    
});

3. filter筛选

array.filter { (str) -> Bool in 
     //筛选里面的闭包必须是返回Bool类型的闭包
     str.hasPrefix("A")  
    }.forEach({     
        a in print(a)      
})

4. map变换

//闭包返回一个变换后的元素,接着将所有这些变换后的元素组成一个新的数组
array.map({ (str) -> String in    
    "Hello " + str    
}).forEach({   
    str in print(str)
})

5. reduce合规

//map和filter方法都是通过一个已存在的数组,生成一个新的、经过修改的数组。然而有时候我们需要把所有元素的值合并成一个新的值
var sum:[Int] = [11, 22, 33, 44];
//reduce 函数第一个参数是返回值的初始化值 result是中间结果 num是遍历集合每次传进来的值
var total = sum.reduce(0) { (result, num) -> Int in
    return result + num
}
print(total)

相关文章

  • 26.Swift学习之闭包在集合中的运用

    闭包是Swift中一个重要的知识点,不仅在开发中能够帮助解决很多问题(如逆向传值),而且在许多官方系统库方法中都能...

  • swift 闭包在集合中的应用

    排序 遍历 forEach filter map reduce 该文章做知识点笔记用来源如下:作者:NSaylor...

  • golang:函数闭包

    From wiki 闭包在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure...

  • 单例模式,promise与async/await

    复习了apply ,argument以及闭包在单例模式中的应用闭包在其中充当了储存器的作用,用来判断有无实例 pr...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • 闭包

    闭包在维基百科上的定义 如下: 在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)...

  • Swift 中的闭包(Closures)

    前言 今天我想聊一聊 Swift 中的闭包(Closures)。闭包在 Swift 中的功能非常强大。它可以简化我...

  • 再再访javascript闭包

    还是闭包,闭包在javascript的编程中作用太大。仍然还是要加深理解这次的例子是来自《javascript设计...

  • 闭包

    逃逸闭包 当一个闭包作为参数传到一个函数中,但是这个闭包在函数返回之后才被执行,我们称该闭包从函数中逃逸。当你定义...

  • 彻底理解JS闭包

    闭包并不是JS所独有的,在计算机科学中其是一个普遍的概念,在Python中也有闭包的概念,但闭包在Python应用...

网友评论

    本文标题:26.Swift学习之闭包在集合中的运用

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