gpt4 book ai didi

swift - 我是否在以下代码中使用闭包 - Understanding Closures in Swift

转载 作者:行者123 更新时间:2023-11-28 06:51:43 25 4
gpt4 key购买 nike

我很难理解在函数中使用闭包。

在下面的代码中,我创建了一个函数,它获取两个参数并返回一个函数,但自从我看到一些教程,其中显示了一些类似的示例,并将它们称为 “捕获常量和变量”使用闭包的值”,但在我的示例中,我并没有真正看到闭包。

我可以说在下面的代码示例中 incrementer() 是闭包吗?

func incrementNumber(baseNumber:Int, increaseBy: Int) -> () -> Int {

var baseNum = baseNumber

func incrementer() -> Int {
baseNum += increaseBy
return baseNum
}

return incrementer
}

let increase = incrementNumber(100, increaseBy: 20)
increase()
increase()
increase()

最佳答案

是的。 incrementer()正在关闭变量 baseNumincreaseBy , 因为当函数 incrementer() 时两个变量都在范围内已声明。

这个程序员stackexchange post很好地解释了它。如您所见,该示例(虽然是在 javascript 中)看起来与您在此处的代码非常相似。

关于swift - 我是否在以下代码中使用闭包 - Understanding Closures in Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689402/

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