`

swift 必包

 
阅读更多
import Cocoa

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
func backwards(s1:String,s2:String) -> Bool{
    return s1 > s2
}
sort(names,backwards)

 上面的必包是用来排序的。必包的定义形式为:

{ (parameters) -> returnType in
    statements
}

 捕获值

func makeIncrementor(forIncrement amount: Int) -> () -> Int {
    var runningTotal = 0
    func incrementor() -> Int {
        runningTotal += amount
        return runningTotal
    }
    return incrementor
}

makeIncrementor函数,包含了一个叫做incrementor嵌套函数。 嵌套函数incrementor从上下文中捕获了两个值,runningTotal和amount。 之后makeIncrementor将incrementor作为闭包返回。 每次调用incrementor时,其会以amount作为增量增加runningTotal的值。

 

let incrementByTen = makeIncrementor(forIncrement: 10)

 我们对返回的必包进行调用

 

incrementByTen()
// 返回的值为10
incrementByTen()
// 返回的值为20
incrementByTen()
// 返回的值为30

 我们在进行调用

 

let incrementBySeven = makeIncrementor(forIncrement: 7)
incrementBySeven()
// 返回的值为7
incrementByTen()
// 返回的值为40

 上面的例子中,incrementBySeven和incrementByTen是常量,但是这些常量指向的闭包仍然可以增加其捕获的变量值。 这是因为函数和闭包都是引用类型。

分享到:
评论

相关推荐

    swift-Swift包管理器的命令行界面

    Swift包管理器是Swift编程语言的核心组成部分之一,它提供了一个命令行界面(CLI)来帮助开发者管理和维护他们的Swift项目。这个界面使得安装、更新、构建和分发Swift代码库变得非常方便。在本文中,我们将深入探讨...

    Swift 开发者必备 Tips

    SPM是Swift的官方包管理器,可以帮助管理和分发Swift项目,简化依赖项的管理。 14. **Swift Codable** Codable协议使得JSON和其他数据格式的编码和解码变得简单,减少了手动转换的工作量。 15. **运算符重载** ...

    swift安装部署包

    swift安装部署过程中需要使用的相关文件包

    Swifter - 100 个 Swift 必备 Tips

    ### Swifter - 100 个 Swift 必备 Tips #### 1. Currying (柯里化) 在函数式编程中,柯里化是一种将接受多个参数的函数转换为一系列函数链的方法,每个函数都接受一个单一的参数。这种技术在 Swift 中可以用于创建...

    100 个swift 必备 Tips

    了解如何定义和使用函数对于任何 Swift 开发者来说都是必不可少的。 9. **Generics (泛型)** 泛型是 Swift 中的一种强大特性,它允许编写可以工作于多种类型上的代码。通过使用泛型,你可以编写更加灵活且易于...

    swift资源打包

    Swift是苹果公司推出的一种强大的、安全的编程语言,主要用于开发iOS、macOS、watchOS以及tvOS的应用程序。本资源打包包含六本关于Swift的书籍,对于想要深入学习Swift编程的开发者来说,是一份非常宝贵的资料。以下...

    解析swift报文所需jar包

    java解析swift报文所需jar,可以用来解析Swift报文等客户对账单信息 java解析swift报文所需jar,可以用来解析Swift报文等客户对账单信息 java解析swift报文所需jar,可以用来解析Swift报文等客户对账单信息 java解析...

    swift-程序启动自动判断选择加载马甲包或应用

    在Swift编程语言中,开发iOS应用时,有时我们需要根据特定条件选择性地加载不同的功能模块,这可能涉及到“壳应用”(马甲包)与“真应用”的切换。标题所提及的“swift-程序启动自动判断选择加载马甲包或应用”就是...

    Swift tips Swift 开发者必备的tips

    5. **Swift Package Manager**:Swift 4.0对包管理器进行了优化,使得依赖管理和构建过程更加高效。 6. **Codable协议**:Swift 4.0引入了`Decodable`和`Encodable`协议,简化了JSON和XML数据的序列化和反序列化。 ...

    swift 学习练手包

    Swift是苹果公司推出的一种强大的、安全的编程语言,主要用于开发iOS、macOS、watchOS以及tvOS的应用程序。在这个“swift学习练手包”中,你将有机会通过一个仿今日头条的应用来深入理解Swift语言的核心概念和实践...

    swift demo 包含登陆登出 四个底部TabBar按钮

    Swift是Apple公司推出的一种编程语言,专为iOS、macOS、watchOS和tvOS等平台设计,具有简洁、安全和高性能的特点。在这个“swift demo 包含登陆登出 四个底部TabBar按钮”的项目中,我们可以看到一个典型的iOS应用...

    100 个Swift必备tips(王崴)

    12. **Swift Package Manager**:Swift的包管理工具,便于代码模块化和项目依赖管理。 13. **异步编程**:async/await是Swift 5.5引入的新特性,简化异步操作的编写,提高代码可读性。 14. **可空安全**:通过...

    王巍 Swifter - Swift 必备 Tips (第四版)书中代码

    《王巍 Swifter - Swift 必备 Tips (第四版)》是一本专注于Swift编程语言实践技巧的书籍,作者王巍是Swift社区中的知名专家。这本书的第四版代码库包含了书中所讲解的各种Swift编程技巧和实战示例,旨在帮助开发者...

    Swifter - 100 个 Swift 必备 tips (第四版) 喵神出品,必属精品

    《Swifter - 100 个 Swift 必备 Tips》是知名开发者“喵神”(onevcat)创作的第四版 Swift 编程指南,它涵盖了 Swift 开发中的诸多实用技巧和最佳实践。这份资源包含了 PDF、EPUB 和 MOBI 三种格式,方便在不同设备...

    swift开发者必备tips(第四版)

    《Swift开发者必备Tips(第四版)》是一本由王巍编著的专业Swift编程指南,特别适合iOS应用开发者阅读。本书采用彩色版设计,为读者提供更佳的阅读体验,如果在阅读过程中有任何疑问或不满意的地方,作者承诺可以...

    Swift4.0.3官方原版文档The Swift Programming Language(Swift4.0.3)

    12. **Swift Package Manager**:Swift4.0.3引入的包管理工具,用于管理和构建Swift项目,使得代码共享和依赖管理更加方便。 13. **Swift语言特性更新**:Swift4.0.3相比之前的版本,可能包括语法改进、性能优化和...

    swift-BCColor一个轻量级但强大的Swift颜色工具包

    **Swift-BCColor:轻量级且功能强大的Swift颜色工具包** Swift-BCColor是一个针对Swift编程语言设计的颜色处理库,旨在提供一个简单易用、功能丰富的色彩操作平台。这个库特别适合iOS开发者,帮助他们在应用程序中...

    Swifter-Swift 开发者必备 Tips (第四版)

    在Swift编程语言的世界里,Swifter-Swift开发者必备Tips是每个Swift程序员都需要掌握的关键信息。这份第四版的指南旨在帮助开发者提升效率,避免常见错误,并深入理解Swift的特性和最佳实践。以下是一些核心的知识点...

    swift-TPFDebugTool一个iOS端的网络抓包工具

    Swift-TPFDebugTool 是一款专为iOS开发者设计的网络抓包工具,它采用Swift语言编写,便于iOS应用的网络调试。在开发过程中,网络请求的调试是必不可少的一部分,TPFDebugTool能够帮助开发者捕获并分析应用程序发出的...

Global site tag (gtag.js) - Google Analytics