gpt4 book ai didi

swift - 了解 Swift 反初始化器

转载 作者:行者123 更新时间:2023-11-30 12:36:41 25 4
gpt4 key购买 nike

Swift deinitializer 没有更新 valueone 和 valuetwo,当我打印 mainTotal.sum 时,我得到的答案是 0,它应该更新值并将答案打印为 95

struct mainTotal{
static var valueone :Int = 0
static var valuetwo :Int = 0
static var sum :Int {
get {
return valueone + valuetwo
}
}
}

class Total{
var valueone :Int = 10
var valuetwo :Int = 10
var sum :Int {
get {
return valueone + valuetwo
}
}
func printsum(valueone:Int,valuetwo:Int){
self.valueone += valueone
self.valuetwo += valuetwo
}
deinit {
mainTotal.valueone += valueone
mainTotal.valuetwo += valuetwo

}
}

var total = Total()
total.printsum(valueone: 10,valuetwo: 15)
var total1 = Total()
total1.printsum(valueone: 10,valuetwo: 20)
print(mainTotal.sum)
print(total.sum)

最佳答案

Totaldeinit 未被调用,这就是 mainTotal 的值未更新的原因。

要调用Totaldeinit,您需要手动释放total对象。

试试这个:

var total : Total? = Total()
total?.printsum(valueone: 10,valuetwo: 15)
print(total!.sum)
total = nil
print(mainTotal.sum)

关于swift - 了解 Swift 反初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42777903/

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