欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

闭包

程序员文章站 2022-07-12 13:18:31
...
/**
 可以把闭包想象成一个类的实例对象
 内存在堆里
 捕获的变量或常量就是u对象的成员(存储属性)
 组成闭包的函数就是类内部定义的方法


 闭包表达式:
 {
  (v1:Int,v2:Int) -> Int in
  return v1 + v2
 }
 */

typealias Fn = (Int) -> Int
func getFn() -> Fn {
    // 局部变量
    var num = 0
    func plus(_ i:Int) -> Int {
        num += i
        return num
    }
    return plus
} // 返回的plus和num形成了闭包

var fn1 = getFn()
print(fn1(1))

var fn2 = getFn()
print(fn2(2))
print(fn2(3))

//func getFn() -> Fn {
//    // 局部变量
//    var num = 0
//    return {num + $0
//        return num
//    }
//}

class Closure {
    var num = 0
    func plus(_ i:Int) -> Int {
        num += i
        return num
    }
}

var cs1 = Closure()
var cs2 = Closure()
cs1.plus(1)

cs2.plus(2)
cs2.plus(3)

闭包

相关标签: swift-开发知识点