swift defer 关键字

  1. 使用场景?
    在函数结束之后执行,一般用于资源释放
  2. 如何使用?
func operateOnFile(descriptor: Int32) {
    let fileHandle = FileHandle(fileDescriptor: descriptor)
    defer { fileHandle.closeFile() }
    ...
}

func printStringNumbers() {
    defer { print("1") }
    defer { print("2") }
    defer { print("3") }

    print("4")
}
// Prints 4, 3, 2, 1 入栈的形式,先进后出
  1. 限制条件
枷锁的话,可能会死锁

参考:
defer-usage-swift

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。