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

你可能感兴趣的:(swift defer 关键字)