Собеседование iOS-разработчика: устные вопросы по языку Swift

2
6079

Перейдем к более открытому варианту тестирования – собеседование iOS-разработчика с устными вопросами по Swift. Вместе с ними также приведены ответы.

Собеседование iOS

Предыдущая статья: Язык Swift: вопросы и ответы на собеседовании

Собеседование iOS: устные вопросы

Начальный уровень

Вопрос №1 – Swift 1.0 и далее

Что такое опционал и какие проблемы он призван решать?

Вопрос №2 – Swift 1.0 и далее

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

Вопрос №3 – Swift 1.0 и далее

Что такое дженерики и какие проблемы они решают?

Вопрос №4 – Swift 1.0 и далее

Объясните суть неявно развернутых (извлеченных) опционалов.

Вопрос №5 – Swift 1.0 и далее

Перечислите способы извлечь опционал. Как они оцениваются с точки зрения безопасности?

Подсказка: Есть по крайней мере семь способов.

Swift

Средний уровень

Собеседование iOS на этом не заканчивается. Вопросы могут набирать обороты, усложняться. Переходим к среднему уровню.

Вопрос №1 – Swift 1.0 и далее

Swift – это язык ООП или функциональный язык программирования?

Вопрос №2 – Swift 1.0 и далее

Что из этого включено в Swift?

  • Generic-классы
  • Generic-структуры
  • Generic-протоколы

Вопрос №3 – Swift 1.0 и далее

Иногда собеседование iOS включает каверзные вопросы вроде этого.

В Objective-C константу можно объявить следующим образом:

Это вариант для Swift:

Есть ли разница между ними? Если да, можете ли вы объяснить, как они отличаются?

Вопрос №4 – Swift 1.0 и далее

Чтобы объявить статическое свойство или функцию, используйте модификатор static. На примере структуры:

Для классов можно использовать либо static, либо модификатор class. Они достигают одной и той же цели, но на самом деле разные. Можете ли вы объяснить, чем они отличаются?

Вопрос №5 – Swift 1.0 и далее

Можете ли вы добавить сохраненное свойство с помощью расширения? Объясните.

Продвинутый уровень

В конце концов собеседование iOS приведет вас к сложным вопросам, и к ним нужно подготовиться.

Вопрос №1 – Swift 1.2

Объясните проблему в Swift 1.2, связанную с объявлением перечисления с дженерик-типами. Возьмем, например, перечисление Either с двумя дженерик-типами T и V. При этом T используется как связанный тип значения для Left, а V – для Right:

Вопрос №2 – Swift 1.0 и далее

Замыкающие выражения – это элементы (значения) или ссылочные типы?

Вопрос №3 – Swift 1.0 и далее

Тип UInt используется для хранения целых чисел без знака. Он реализует инициализатор для преобразования:

Однако следующий код генерирует исключение ошибки, если вы указываете отрицательное значение:

Зная, что отрицательное число внутренне представлено, и используя два дополнения в качестве положительного числа, как можно преобразовать отрицательное число Int в UInt, сохраняя при этом представление своей памяти?

Вопрос №4 – Swift 1.0 и далее

Опишите ситуацию, когда можно получить циклическую ссылку в Swift?

Вопрос №5 – Swift 2.0 и далее

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

Что это за ключевое слово?

Поздравляем с успешно пройденным материалом! Теперь даже самое сложное собеседование iOS вам по плечу.-




2 Комментарии