今天猎奇了下Swift中多个defer和嵌套defer会怎样实施,遂写了个demo, 验证了下

class DeferModel {
static func test() {
defer {
print("defer1 begin")
defer {
print("in defeSwiftr 1")
}
print("defer1 end")
}
defer {
print("defer2 beginswiftcode代码查询")
defer {
pswift结算体系rint("in defer 2")
}
print("defer2 end")
}
print("do Sswift结算体系th in defer demo")
}
}
// 输出:
do Stswiftcode代码查询h in deswifterfer demo
defer2 begin
deswift结算体系fer2 end
in defer 2
defer1 bswift代码查询egin
defer1 endSwift
in defer 1

结论

  1. 多个defer先实施后边的,再实施前面的
  2. defer中的swifterdeferSwift可以跟一般的效果域相同,先实施完一般逻辑终究才实施defer