Swift初始化程序不返回值?

Swi*_*ter 5 ios swift

Swift文档明确指出.

与Objective-C初始值设定项不同,Swift初始值设定项不返回值.

请解释下面的语法.

let instanceOfString = String()
Run Code Online (Sandbox Code Playgroud)

它通过调用初始化程序并返回它来初始化String对象.值被分配给instanceOfString.不是吗?

Nik*_*uhe 9

swift文档引用了类型init方法的语法.

语法省略了签名中的返回类型,该方法通常不包含return语句:

init() {
}
Run Code Online (Sandbox Code Playgroud)

显然,初始化程序(String())的调用确实返回了一个值.与Objective-C的不同之处init在于纯Swift类型中的方法不能自由地返回与方法目标不同的对象 - 它始终是目标类型的隐式分配实例.

唯一的例外是可以返回nil可用的初始值设定项.