gpt4 book ai didi

swift - 为什么可失败的初始化需要设置所有变量?

转载 作者:行者123 更新时间:2023-11-28 05:32:17 27 4
gpt4 key购买 nike

在具有可失败初始化器的类中,必须在返回 nil 之前设置所有变量。

这是 Swift 编程语言指南的近似副本:

class Product {
let name: String // The guide has this as String! so it can compile
init?(name: String) {
if name.isEmpty { return nil }
self.name = name
}
}

指南告诉我们 name 需要是 String!,而且上面的代码确实无法编译。

我们被告知“但是,对于类,可失败的初始化器只有在该类引入的所有存储属性都设置为初始值并且任何初始化器委托(delegate)已经发生后才能触发初始化失败。”但是该指南没有解释允许值类型跳过设置所有变量而引用类型必须这样做的原因。

我的问题是为什么需要类来初始化所有变量?

最佳答案

现在在 Swift 2.2 上已修复

我们现在可以使用可失败初始化器并在设置所有属性之前返回 nil。

enter image description here

关于swift - 为什么可失败的初始化需要设置所有变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428793/

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