gpt4 book ai didi

swift - 在 Swift 中捕获值

转载 作者:行者123 更新时间:2023-11-28 08:42:25 30 4
gpt4 key购买 nike

我不明白获取值(value)是如何运​​作的。下面是一个嵌套函数的示例,该函数从其周围的函数中捕获 amountrunningTotal。当调用 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

最佳答案

闭包就是这样工作的——它们在创建时从周围的作用域中捕获变量。

关于swift - 在 Swift 中捕获值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36171144/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com