美文网首页
菜鸡学Swift3.0 11.闭包

菜鸡学Swift3.0 11.闭包

作者: 菜鸡 | 来源:发表于2016-10-13 13:29 被阅读10次

1. 闭包

{(参数:参数类型 , 。。。) -> 返回值类型 in return 函数体 }
var arr = [71,24,56,78]
arr.sorted(by: { (a:Int , b:Int) -> Bool in
    return a > b
})
//[24, 56, 71, 78]

2. 尾随闭包

var arr = [71,24,56,78]
arr.sorted() { (a:Int , b:Int) -> Bool in return a > b }

3. 值捕获

var arr = [71,24,56,78]
var num = 10
// 这是一个尾随闭包,闭包前面的()可以省略掉,闭包内的num可以自动捕获上文中的var变量值
arr.sort(){ a , b in
    abs(a - num) < abs(b - num)
}

4. 函数、闭包是引用类型 类似于拷贝意思

func running(meters: Int) -> ()-> Int {
    var a = 0
    // 这里return的是 下面 { 闭包 }
    return {
        a += meters
        return a
    }
}
// 这里的 planA 是函数类型的变量
var planA = running(meters: 30)
planA() //30
planA() //60

相关文章

  • 菜鸡学Swift3.0 11.闭包

    1. 闭包 {(参数:参数类型 , 。。。) -> 返回值类型 in return 函数体 } 2. 尾随闭包 3...

  • swift中GCD的使用详情

    想看swift3.0使用GCD,请点击GCD详解 想看swift3.0闭包的使用和介绍,请点击Swift版闭包使用...

  • 逃逸闭包(escaping) vs 非逃逸闭包(nonescap

    升级到Swift3.0后,需要明确指出逃逸闭包,可以帮助编译器进行优化 逃逸闭包:可以逃离出所在函数执行的非逃逸闭...

  • Swift3.0朝圣之路-objc_setAssociatedO

    在Swift3.0中使用Runtime中的objc_setAssociatedObject绑定Block闭包,编译...

  • 9 闭包——《Swift3.0从入门到出家》

    9 闭包——《Swift3.0从入门到出家》 闭包 Swift语言中可以使用一块独立代码块替代函数的定义,称独立的...

  • Swift3.0 闭包

    闭包1.提前准备好的代码2.在需要的时候执行3.可以当做参数传递

  • swift3.0 - 闭包

    闭包的介绍 函数是闭包的一种类似于OC语言的block闭包表达式(匿名函数) -- 能够捕获上下文中的值 语法: ...

  • 闭包的逃逸

    在swift3.0以前,一个函数的参数的闭包的捕捉策略是escaping,如果是一个非逃逸闭包,需要显示的添加声明...

  • 菜鸡学Swift3.0 10.函数

    1. 函数的定义 func 函数名(参数)-> 返回值类型 { 函数体 } 函数名( 参数名:参数值 ) 2. 函...

  • 菜鸡学Swift3.0 12.枚举

    1. 枚举定义 enum 定义枚举类型 { case 枚举项 ... } 2.原始值 rawValue enum...

网友评论

      本文标题:菜鸡学Swift3.0 11.闭包

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