【发布时间】:2016-03-23 06:23:57
【问题描述】:
我不明白捕获值的工作原理。下面是一个嵌套函数的示例,该函数从其周围函数中捕获 amount 和 runningTotal。当调用 makeIncrementer(forIncrement:) 函数时,incrementer() 函数内部什么也没有发生(incrementer() 函数内部的代码没有被执行),那么 incrementer() 如何捕获任何值呢?我显然是编程新手,我找不到“幕后”实际发生的事情的详细解释。
func makeIncrementer(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
func incrementer() -> Int {
runningTotal += amount
return runningTotal
}
return incremented
}
let incrementByTen = makeIncrementer(forIncrement: 10)
incrementByTen()
// returns a value of 10
incrementByTen()
// returns a value of 20
incrementByTen()
// returns a value of 30
【问题讨论】:
-
是的,我已阅读文档。上面这段代码摘自 Apple 的文档
-
任何澄清?我不清楚