美文网首页
swift闭包高级功能

swift闭包高级功能

作者: FengxinLi | 来源:发表于2017-03-30 16:18 被阅读39次

1:声明另一个数组filterNumbers

let filterNumbers = [1, 2, 3, 4, 5]

let filteredNumbers = filterNumbers.filter { $0 > 3 }

print(filteredNumbers) //prints [4, 5]

在这个例子中,我们过滤filteredNumbers,只保留大于3的项目。此示例还使用Swift的各种语法改进来确保我们的代码简洁。

2:我们试试看forEach一个数组叫做forEachNumbers:

let forEachNumbers = [1, 2, 3, 4, 5]

forEachNumbers.forEach { print($0) } //prints one item of the array on each line

使用forEach非常类似于使用for循环。再次,我们使用了许多语法改进来确保我们有干净的代码。

3:现在,让我们reduce试试看看reduceNumbers:

let reduceNumbers = [1, 2, 3, 4 ,5]

let reducedNumber = reduceNumbers.reduce(0) { $0 + $1 }

print(reducedNumber) //prints 15

reduce用于将集合减少为单个值。在我们的例子中,我们将所有数字加在一起reduceNumbers,并将其存入reducedNumber。

4:flatMap

再去一次!让我们用flatMap现在。声明一个数组flatMapNumbers。这一次,我们的起始数组与前面的例子有点不同,它包含nil值:

let flatMapNumbers = [1, nil, 2, nil, 3, nil, 4, nil, 5]

let flatMappedNumbers = flatMapNumbers.flatMap { $0 }

print(flatMappedNumbers) //prints [1, 2, 3, 4, 5]

flatMap遍历一个集合,使用输入关闭来操纵值。生成的集合只包含非零值。您会注意到,最终的数组不包含nil元素。flatMap对于从集合中删除可选值特别有用。

您可以链接更高阶的函数来创建强大的转换,这在一个变换中是不可能的。以下是一个例子:

let chainNumbers = [1, nil, 2, nil, 3, nil, 4, nil, 5]

let doubledNumbersOver8 = chainNumbers.flatMap { $0 }.filter { $0 > 3 }.map { $0 * 2 }

print(doubledNumbersOver8) //prints [8, 10]

相关文章

  • swift闭包高级功能

    1:声明另一个数组filterNumbers let filterNumbers = [1, 2, 3, 4, 5...

  • Swift-闭包

    Swift-闭包 Swift闭包的含义 闭包是自包含的功能代码块,可以用作函数的参数或者返回值 闭包可以捕获上下文...

  • Swift:基础(十六)闭包

    Swift 闭包 闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 Swift...

  • iOS swift 学习(二)

    Swift 闭包闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。Swift 中...

  • Swift基础 : 闭包

    Swift 闭包 闭包(Closures)是包含功能的代码块, 可以在代码中使用或者用来作为参数传值 闭包的定义:...

  • Swift5.5学习笔记六:闭包(Closures)

    //闭包(Closures)//闭包是独立的功能块,可以在代码中传递和使用。//Swift中的闭包类似于 C 和 ...

  • Swift 闭包

    @Author Swift 闭包(Closure) 闭包是一种可以在代码中作为参数传递,自含的功能块。 闭包类似于...

  • 07 闭包

    闭包 闭包是可以在你的代码中被传递和引用的功能性独立代码块。Swift 中的闭包和 C 以及 Objective...

  • Swift 中的闭包(Closures)

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

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

网友评论

      本文标题:swift闭包高级功能

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