美文网首页
swift 闭包(closure)

swift 闭包(closure)

作者: hank009 | 来源:发表于2020-12-29 17:37 被阅读0次

闭包:就是一个函数和它所捕获的变量/常量环境组合起来,称为闭包。
1.一般定义在函数内部的函数。
2.一般它捕获的是外层函数的局部变量/常量。

可以把闭包想像成是一个类的实例对象。
1.内存在堆空间。
2.捕获的局部变量/常量就是对象的成员(存储属性)。
3.组成闭包的函数就是类内部定义的方法。

typealias Fn = (Int) -> Int
func getFn() -> Fn {
     var num = 0
     func plus(_ i: Int) -> Int {
          num += i
          return num
    }
   return plus
}

func getFn() -> Fn {
   var num = 0
  return {
      num += $0
     return num
   }
}

var fn1 = getFn()
var fn2 = getFn()
fn1(1)  // 1
fn2(2)  // 2
fn1(3)  // 4
fn2(4)  // 6
fn1(5)  // 9
fn2(6)  // 12
class Closure {
   var num = 0
  func plus(_ i: Int) -> Int {
      num += I
     return num
   }
}

var cs1 = Closure()
var cs2 = Closure()
cs1.plus(1)   // 1
cs2.plus(2)   // 2
cs1.plus(3)   // 4
cs2.plus(4)   // 6
cs1.plus(5)   // 9
cs2.plus(6)   // 12

相关文章

  • Swift5.0 - day4-闭包、属性、方法、下标

    一、闭包 1.1、闭包表达式(Closure Expression)在 Swift 里面可以通过函数 func 定...

  • Swift 5.3 - SE-0279 Multiple Tra

    在最初 Swift 的定义中,当方法的最后一个参数为闭包时,称该闭包为尾随闭包(trailing closure)...

  • Swift closure闭包

    究竟什么是Closure? 说的通俗一点,一个函数加上它捕获的变量一起,才算一个closure //MARK: -...

  • swift:Closure 闭包

    @noescape @autoclosure @autoclosure(escaping)

  • Swift Closure闭包

    函数也是一种闭包 console log 如下 闭包表达式 console log 如下 闭包中的参数类型推断 c...

  • swift 闭包(closure)

    闭包:就是一个函数和它所捕获的变量/常量环境组合起来,称为闭包。1.一般定义在函数内部的函数。2.一般它捕获的是外...

  • Swift 闭包

    @Author Swift 闭包(Closure) 闭包是一种可以在代码中作为参数传递,自含的功能块。 闭包类似于...

  • [Swift5.1] 7-闭包

    闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表...

  • Swift底层原理探索5----闭包

    闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表...

  • 闭包

    闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表...

网友评论

      本文标题:swift 闭包(closure)

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