2016-04-26 33 views
3

,我读了初始化斯威夫特语言

初始化

斯威夫特

没有返回值,那么为什么我可以这样写:

var str = String.init("mystring") 
+3

严格说*没有返回值*是错误的。 'init'函数确实返回实例,但是你不能像Objective-C – vadian

+0

那样显式返回'self',谢谢你的回答) – tproger

回答

1

功能init不会返回你是对的,但在这种情况下,你只是做一个变量等于结构字符串,它是用“你好”初始化的

它是相同的:

var class = someClass() 

的()是不带参数INIT功能。

+0

谢谢,请给出当init不使用时返回值的其他例子吗? – tproger

+0

几乎任何时候你看到()的东西,这不是一个函数,它是一个初始化调用。因此,例如AVAudioPlayer()甚至[String]() –

+0

在这些情况下,您需要将初始化的实例分配给一个变量,或者它没有留在内存中的位置。变量IS是类或对象的实例等等,init调用没有返回任何东西。 –

相关问题