Swift X Objective-C: Кросс-языковое мышление 3

S

Статья основана на Xcode 7.3 и соответствующих ему языковых версиях

В предыдущей статье мы рассматривали отличия объявления классов и синтаксиса в Swift и Objective-C. Сегодня разговор пойдет о различных типах данных. Сразу скажу, что мы не будем начинать дотошно анализировать каждый тип. Как всегда, на паре простых примеров мы сравним некоторые особенности Objective-C и Swift.

Swift X Objective-C: Опциональные типы

Опциональные (необязательные) типы мы используем тогда, когда значение переменной может не иметь фактически ничего — быть nil.

Это код Swift. Одно из применений опциональных типов: зная, что переменная может не иметь значения вовсе, можно не делать проверку на nil, что сделает код более гладким:

 

Objective

Давайте теперь сравним все вышенаписанное с Objective-C:

Сдесь мы должны были инициализировать NSNumber, который наследуется от NSObject. Каждый раз создавать новые экземпляры  — это тяжелые операции.

Swift X Objective-C: Вывод типа

В Swift вам не обязательно явно указывать тип каждый раз. Это нужно делать только когда это очевидно необходимо. В Objective-C само создание переменно основано на том, что первым делом мы пишем будущий тип. Давайте посмотрим на создание строки в Objective-C:

Давайте же посмотрим теперь, как это работает в Swift:

Но, погодите, как же компилятор поймет, что это строки? Ведь в Objective-C это очевидно, а в Swift нет ни единого указания на тип, а только на константность. На самом деле это не так. Указателем на тип в Swift является, простите за тавтологию, тип значения переменной. То есть если после = у нас стоит нечто в кавычках, то очевидно, что это ни что иное, как строка. Это и есть вывод типа.

Если вы только переходите на Swift, то вы можете указывать тип явно. В этом случае переменная даже не станет смотреть на то, что идет после знака равно:

Теперь переменная string1 обязана быть строкой, иначе будет ошибка.

Обязательное  указание типа так же необходимо, если мы работаем с примерно одинаковыми типами.

Однако Float же тоже может хранить числа с точкой. Что если нам необходим тип Float? В таком случае нужно указать его явно.

 

Как видите, Swift продолжает радовать и держать свои позиции более легкого и поворотливого соперника Objective-C.

Поддержите ресурс blog.justDev:

Сведения об авторе

Игорь Малеваный

Добавить комментарий

Instagram

Поддержите ресурс blog.justDev:

Свежие записи

Рубрики