在关闭中的swift,局部变量

时间:2017-09-18 16:25:00

标签: swift closures reference-type

我正在研究Swift闭包,但我对闭包捕获列表有一些疑问。

我知道闭包是一种参考类型。我知道引用类型和值类型的含义。

但是在闭包中,当它们捕获值(闭包的局部变量)时,局部变量如何才是引用类型?

例如:

var i = 0
var closureArrays:[()->()] = []
for _ in 1...5{
    closureArrays.append{
        print(i)
    }
    i += 1
}

我认为这是封闭中最着名的捕获列表示例。

然后我认为i是整数类型,它也是值类型但是i如何成为闭包块中的引用类型?

这与javascript中的范围链是一样的概念吗?

任何人都可以解释清楚吗?

0 个答案:

没有答案