gpt4 book ai didi

swift - 这两种类型的闭包有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 06:30:08 24 4
gpt4 key购买 nike

我通过此链接了解计算属性和闭包之间的区别,Difference between closure and Computed property .

我们可以用两种方式编写闭包,看一个例子,

var computedProperty:String{
return "computedProperty"
}

var clouserFirst = { (name: String) -> String in
return "Hello \(name)"
}

var clouserSecond:String = {
return "Hello clouserSecond"
}()

如果我在类里面写两个闭包,

第二个闭包被第一次调用,这在上面的链接中有解释,之后只返回那些值。
但是第一种闭包是调用时我们调用这个闭包并且闭包都是引用类型。见closure in apple document .

我知道计算属性的工作方式与函数一样,不会在内存中存储任何值。

所以,我的问题是内存分配是如何在两种关闭方式中发生的。谁能帮我理解这两个闭包的功能和区别?

最佳答案

在第一个闭包中,参数作为参数传递,您的 var 是 (String) -> String 类型,而在第二个闭包中,您初始化一个 String 带闭包的 var

主要区别在于两个变量的类型,一个是 String 类型,另一个是 (String) -> String 类型作为闭包,换句话说,在第一种情况下,你声明了一个 String 并赋值,而在第二个你将闭包声明为 var 并赋值

关于swift - 这两种类型的闭包有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48576748/

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