Swift语言中的初始化

3

我了解到在Swift中,

init

不会返回值,那么为什么我可以这样写:

var str = String.init("mystring")

3
严格来说,“不返回值”是错误的表述。init函数确实会返回实例,但你不能像在Objective-C中那样显式地返回self - vadian
1个回答

1

函数init并不返回任何值,但在这种情况下,你只是让一个变量等于使用"hello"初始化的结构体String。

这与以下代码相同:

var class = someClass()

() 是一个没有参数的初始化函数。


谢谢,您能否请提供一个 init 不返回值时的使用示例? - tproger
几乎任何时候,你看到一个不是函数的东西带有 (),它就是一个初始化调用。 所以例如 AVAudioPlayer() 或者 String - Olivier Wilkinson
在这些情况下,您需要将初始化的实例赋值给一个变量,否则它就没有存储在内存中的位置。该变量是类或对象实例,init调用并没有返回任何内容。 - Olivier Wilkinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接