gpt4 book ai didi

swift - 需要了解闭包中的执行顺序

转载 作者:行者123 更新时间:2023-11-28 13:44:18 25 4
gpt4 key购买 nike

我一直在 Playground 中使用 Swift 文档中关于闭包的示例进行试验 - 我在 incrementer 函数中添加了 print 语句,就在返回 makeIncrementer 函数之前。

func makeIncrementer(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
func incrementer() -> Int {
print("something")
runningTotal += amount

return runningTotal
}
print("running total is: \(runningTotal)")
return incrementer
}

let incrementByTen = makeIncrementer(forIncrement: 10)
incrementByTen()
incrementByTen()
incrementByTen()
incrementByTen()
incrementByTen()
incrementByTen()

当我运行代码时,我得到:

running total is: 0
something
something
something
something
something
something

为什么我每次调用 incrementByTen() 时都不会打印“running total is:”? - 谢谢

最佳答案

  • 执行行 let incrementByTen = makeIncrementer(forIncrement: 10)

    通过捕获 runningTotalamount 创建函数 func incrementer(),打印 running total is..并返回

    func incrementer() -> Int {
    print("something")
    runningTotal += 10

    return runningTotal
    }

    执行incrementer()
    之后变量 incrementByTen 包含整个 incrementer() 函数

  • 执行行 incrementByTen()

    仅执行函数 incrementer(),打印 something,进行数学计算并返回增量值。

关于swift - 需要了解闭包中的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55619441/

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