Интервью — 10 Вопросов О Swift. Часть 1

Салют, хабровчане! Майские закончились и мы продолжаем запускать новые курсы.

Эта статья приурочена к старту курс iOS-разработчика .

Обучение начнется 28 мая, но до этого момента у вас есть возможность узнать больше о языке Swift и его особенностях.

Это первая статья из трех, где в формате интервью обсуждаются преимущества и особенности языка Swift, на котором мы на наших курсах учим создавать приложения для iOS.

Интервью — 10 вопросов о Swift. Часть 1



Что такое Swift и чем он хорош?

Swift — универсальный и мультипарадигмальный язык программирования, разработанный Apple для разработки решений для iOS, macOS, watchOS, tvOS и даже Linux.
  • Читабельность — язык Swift имеет очень чистый и простой синтаксис, который легко писать и читать.

  • Легкая поддержка — на выходе гораздо меньше кода и уровней наследования, а весь проект превращается в один Swift-файл.

  • Безопасная платформа — компилируйте и исправляйте ошибки прямо во время написания кода.

  • Высокоскоростной - невероятно быстрый и производительный компилятор LLVM преобразует код, написанный на Swift, в собственный код, чтобы максимально эффективно использовать возможности ваших устройств.

    Сам синтаксис и стандартная библиотека также оптимизированы по скорости.

  • Поддержка динамической библиотеки .

  • Открытый источник .



В чем разница между классом и структурой?

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

Классы обладают некоторыми возможностями, которых нет у структур:

  • Бросать - Позволяет проверять и интерпретировать классы во время выполнения.

  • Подсчет ссылок — позволяет использовать более одной ссылки для каждого экземпляра класса.

  • Наследование - позволяет одному классу наследовать характеристики другого.

  • Деинициализаторы — разрешить каждому экземпляру класса освободить все назначенные ему ресурсы.

Когда структуры передаются в коде, они всегда копируются без использования подсчета ссылок.

Экземпляры структуры всегда передаются по значению, а экземпляры класса всегда передаются по ссылке.



Когда использовать класс, а когда структуру?

В качестве простой шпаргалки: структуры следует использовать, когда выполняется одно или несколько из следующих условий.

  • Целью структуры является инкапсуляция ряда относительно простых значений данных;
  • Вы могли бы ожидать, что инкапсулированные значения будут копироваться, а не ссылаться на них;
  • Свойства, хранящиеся в структуре, сами являются типами значений, которые также копируются, а не используются;
  • Структура не должна наследовать свойства и поведение другого существующего типа.

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



Как передать переменные как ссылки?

Переменную можно передать как ссылку с помощью параметра входной .

Вход означает, что изменение локальной переменной также изменит переданные параметры.

  
  
  
   

var value: String = “Apple” func changeString(newValue:inout String) { newValue = “Samsung” print(newValue) // Output:Samsung print(value) // Output:Samsung } changeString(newValue:&value)



Что такое модуль?

  • Модуль — это отдельная единица в распределении кода;
  • Платформа или приложение, которое создается и распространяется как отдельная единица и может быть импортировано другим модулем;
  • Каждая цель сборки — пакет приложения или платформа — рассматривается в Xcode как отдельный модуль.



Каковы различия между уровнями доступа в Swift?

Swift имеет пять различных уровней доступа к объектам в коде:
  • Открытый доступ - классы открытого доступа могут быть подклассами или переопределяться подклассами в модуле, где они определены, или в любом другом модуле, импортирующем модуль, в котором они определены;
  • Публичный доступ — классы с публичным доступом могут быть подклассами или переопределяться подклассами только внутри модуля, в котором они определены;
  • Внутренний доступ — сущности могут использоваться в любом исходном файле из определяющего модуля, но не в исходном файле вне этого модуля;
  • Частный доступ к файлам — использование сущностей ограничено их собственным определяющим исходным файлом;
  • Частный доступ — использование сущностей ограничивается вложенным объявлением и расширениями этого объявления, которые находятся в одном файле.

Открытый доступ — это самый высокий и наименее ограничительный уровень, тогда как частный доступ — самый низкий и, следовательно, наиболее ограничительный.

По умолчанию все сущности в коде имеют внутренний уровень доступа.



Что такое ленивая инициализация?

Ленивая инициализация — это метод задержки создания объекта или выполнения другого процесса до тех пор, пока этот процесс не понадобится.

Задержку можно использовать только с классами и структурами.

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

Всегда нужно декларировать свойство ленивый в качестве переменной, используя вар .

Свойства констант всегда должны иметь значение до завершения инициализации, поэтому их нельзя отложить.



Что такое кортеж?

Кортеж — это группа из нуля или более значений, представленных как одно значение.

Обычно они используются для возврата нескольких значений из вызывающей функции.

В Swift есть два типа кортежей.

Персонализированный кортеж

let nameAndAge = (name:”Midhun”, age:7) Access the values like: nameAndAge.name //Output: Midhun nameAndAge.age //Output: 7

Безымянный кортеж В этом типе кортежа мы не предоставляем имена элементам.



let nameAndAge = (“Midhun”, 7) Access the values like: nameAndAge.0 //Output: Midhun nameAndAge.1 //Output: 7



Что такое трансферы?

Перечисление определяет общий тип для группы связанных значений и позволяет коду безопасно манипулировать этими значениями.

В отличие от C и Objective-C, перечислениям Swift не присваиваются целочисленные значения по умолчанию при их создании.



Что такое связанные ценности?

Связанные значения очень похожи на переменные, связанные с одним из случаев перечисления.



enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) }

Определение типа перечисления Штрих-код , который может принимать значение upc со связанным значением типа (Инт, Инт, Инт, Инт) или значение QR код со связанным типом значения Нить .

Иногда может оказаться полезной возможность хранить связанные значения других типов рядом со значениями регистра.

Это позволяет хранить дополнительную пользовательскую информацию вместе со значением кейса и позволяет этой информации изменяться каждый раз, когда кейс используется в коде.

Конец первой части.

Вторая часть.

Приглашаем всех принять участие бесплатный вебинар , где мы расскажем, чему вас научит этот курс.

Теги: #разработка iOS #Разработка мобильных приложений #программирование #разработка iOS #разработка мобильных устройств #языки программирования #Swift

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.