Swift中的闭包

闭包Closure是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C和Objective-C中的代码块以及其他编程语言如C++中的lambdas函数比较相似。

闭包可以捕获和存储其所在上下文中任意常量和变量的引用,这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。Swift会管理在捕获过程中涉及到的所有内存操作。

1.闭包表达式语法有如下的一般的形式:

{ (parameters) -> returnType in
    statements
}

闭包表达式:

  • 参数:可以是常量、变量和inout类型,不提供默认值,也可以在参数列表的最后使用可变参数。
  • 返回值:元组也可以作为返回值。

2.根据上下文推断参数类型

reversed=sorted(names,{s1,s2 in return s1>s2})

实际上任何情况下,通过内联闭包表达式构造的闭包作为参数传递给函数时,都可以推断出闭包的参数和返回值类型,这意味着几乎不需要利用完整格式构造任何内联闭包。

3.尾部闭包

如果需要将一个很长的闭包表达式作为最后一个参数传递给函数的话,我们可以使用尾部闭包来增强函数的可读性。尾部闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用。

let manager=AFHTTPRequestOperationManager(baseURL:nil)
manager.responseSerializer=AFHTTPResponseSerializer()
manager.GET(urlpath,
    parameters:nil,
    success:{
        (request:AFHTTPRequestOperation!,obj:AnyObject!)     ->  Void in
        print("ok")
                })
{
    (request:AFHTTPRequestOperation!,error:NSError!)  ->Void  in
    print("error")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值