闭包学习

作者: 奋斗的老王 | 来源:发表于2016-04-11 20:53 被阅读62次

Block的基本学习

功能: 保存一段代码, 在需要的时候执行

  • OC定义属性
    @property (nonatomic, copy) void(^andersonBlock)();

Swift闭包

  • 闭包的基本格式
    {
    (形参列表) ->(返回值)
    in // 用于区分形参, 返回值和需要执行的代码
    需要执行的代码
    }

  • 闭包的几种格式
    1> 将闭包通过实参传递给参数
    2> 如果闭包是一个函数的最后一个参数, 那么闭包可以写在函数()后面
    3> 如果函数只接受一个参数, 而且这个参数是闭包, 那么()可以省略

  • 闭包的简写
    1> 如果闭包没有参数, 没有返回值, 那么 "() -> () in" 可以省略

闭包的返回值和参数

  • 示例:
    override fun viewDidLoad(){
    super.viewDidLoad()
    createScrollView ( { ( ) -> Int in
    return 5
    }){ (index) -> UIView in
    let view = UIButton()
    // 设置View的属性(标题, 文字颜色等信息)
    return view
    }
    }

func createScrollView(buttonCount: ( ) -> Int, btnWithIndex:(index: Int) -> UIView){
// 代码块
// 一个函数, 传入2个闭包
}

闭包的循环引用问题:

  • 使用weak关键字修饰
    weak var weakSelf = self // 需要注意, 在闭包当中使用weakSelf必须用!修饰

相关文章

  • swift闭包学习

    闭包作为参数 参考 Swift学习之闭包

  • Swift5.x-枚举(中文文档)

    引言 继续学习Swift文档,从上一章节:闭包,我们学习了Swift闭包相关的内容,如闭包的定义和使用、闭包的简写...

  • Rust 闭包学习 (Fn/FnMut/FnOnce)

    学习 Rust 闭包记录 闭包作为参数 闭包作为结构体属性 异步使用闭包 主要就是加 Send trait,没加 ...

  • java,kotlin,dart闭包

    java闭包 kotlin闭包 dart闭包 了解不同语言之间的相同和不同。学习和进步。

  • python之闭包

    1、什么是闭包? 2、闭包有什么用? 3、闭包的应用场景? 今天带着以上三个问题来学习闭包。 首先说明:闭包,并不...

  • Swift学习笔记(1)

    SWift学习笔记 闭包 闭包表达式 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 ...

  • 闭包学习

    Block的基本学习 功能: 保存一段代码, 在需要的时候执行 OC定义属性@property (nonatomi...

  • Swift5 闭包及其应用

    关于如何理解闭包 学习闭包的第一个难点就是理解闭包,可能很多人用了很久的闭包都还不太清楚闭包到底是什么,我这里提供...

  • 闭包

    学习Javascript闭包(Closure)

  • javascript中的闭包

    该文章是MDN闭包文档学习笔记,方便日后查阅。如要查阅源文档,请移步闭包文档传送门 闭包 闭包是函数和声明该函数的...

网友评论

    本文标题:闭包学习

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