闭包(Closure)

C 语言中的代码块

Objective-C中的block

JavaScript中的closure

swift中的closure

一、闭包表达式简介

结构是怎么样的,不同的语言写法不一样

xxx

二、闭包捕获变量

1、 值捕获 +(可变)

2、 指针捕获

3、引用捕获

三、闭包用途

1. 作为函数参数:

  • 可以将 lambda 表达式作为参数传递给其他函数,实现更加灵活的编程。

  • 例如,在排序算法中,可以使用 lambda 表达式指定排序的规则。

2. 局部函数对象:

  • 在局部作用域中创建函数对象,避免定义全局函数或成员函数。

  • 可以提高代码的封装性和可读性。

3. 异步编程:

  • 在异步操作中,闭包可以捕获上下文信息,以便在异步操作完成后进行正确的处理。

使得代码更加简洁、灵活和易于维护

Last updated