level 3
x = increment()
这行代码,在计算机执行时,可以拆分成以下步骤:
let i = increment()
x = i
let i = increment()
这行代码会发生如下事件:
1、得到函数结果,因为函数内部返回变量X作为输出结果,故i = 5。
2、紧接着在函数释放前,会执行defer语句,故x = 6
x = i
虽然上一行代码x = 6, 但是这行代码又重新把 x = 5,因为i是临时常量等于5
let result = increment()
同理,result = 5, 同时,函数释放前,会执行defer,所以x = 6
print(x, result, x)
所以打印输出 6 , 5, 6
2022年07月01日 08点07分
