3
Swift文档清楚地说。Swift初始化不返回值?
与Objective-C初始值设定项不同,Swift初始值设定项不返回 值。
请解释下面的语法。
let instanceOfString = String()
它通过调用初始化程序并返回它来初始化一个String对象。值分配给instanceOfString
。不是吗?
Swift文档清楚地说。Swift初始化不返回值?
与Objective-C初始值设定项不同,Swift初始值设定项不返回 值。
请解释下面的语法。
let instanceOfString = String()
它通过调用初始化程序并返回它来初始化一个String对象。值分配给instanceOfString
。不是吗?
swift文档是指类型的init
方法的语法。
的语法在签名省略了返回类型和方法通常不包含return语句:
init() {
}
显然一个初始化(String()
)的调用并返回一个值。与Objective-C的不同之处在于纯Swift类型中的init
方法不能自由地返回与该方法的目标不同的对象 - 它始终是目标类型的隐式分配实例。
唯一的例外是可以在可分段的初始化程序中返回nil
。
Objective C引入了一个特性,通过使返回类型为'instancetype'来将返回类型锁定为目标类型。 – MadNik
@MadNik你仍然可以返回派生类型。在Swift中这是不可能的 - 你甚至不能返回完全相同类型的不同实例。 –
是的。伟大的一点。这使答案完整。 – MadNik