2016-04-26 2 views
3

Я читал, чтоInit в Swift языке

INIT

в Swift не возвращает значение, то почему я могу написать это:

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

Строго сказано * не возвращает значение * неверно. Функция 'init' возвращает экземпляр, но вы не должны возвращать' self' в явном виде, как в Objective-C – vadian

+0

спасибо за ответ) – tproger

ответ

1

Функция инициализация не return, вы правы, но в этом случае вы просто делаете переменную равной структуре String, которая инициализируется символом «hello»

Это то же самое, как:

var class = someClass() 

The() является функцией инициализации без аргументов.

+0

спасибо, а вы можете дать другой пример использования init, когда он не возвращает значение? – tproger

+0

Практически в любое время, когда вы видите() что-то, что не является функцией, это вызов init. Так, например, AVAudioPlayer() или даже [String]() –

+0

В этих случаях вам нужно назначить инициализированный экземпляр переменной или у нее нет места для хранения в памяти. переменная IS является экземпляром класса или объекта и т. д., вызов init ничего не возвращает. –

Смежные вопросы