- •Объявление, инициализация и изменение значения. Виды операторов. Переменные и константы. Виды объектов.
- •Типы данных
- •4. Числовые типы данных. Арифметические операторы. Приведение числовых типов данных.
- •5. Текстовые типы данных. Инициализация строковых значений. Приведение к строковому типу данных. Объединение строк.
- •6. Логические значения. Логические операторы.
- •Как проверить, есть ли значение в переменной с опциональным типом данных?
- •12* Операторветвления switch. Fallthrough. Where.
- •13.Сұрақ. Кортежи в операторе switch
- •Наборы: объявление набора, создание пустого набора, доступ к набору и модификация набора.
- •Оператор while
- •Оператор repeatwhile
- •24 Функции: объявление, синтаксис вызова функции. Примеры.
- •Заметка
- •25.Входные аргументы и возвращаемое значение
- •Глава 15 • Функции 245
- •26 Функция в качестве входного аргумента
- •27.Кортеж в качестве возвращаемого значения
- •28. Функционалдымүмкіндіктер. Функционалдытүрі. Функция аргумент ретінде.
- •29. Күрделіфункционалды тип. Қайтарумәніретінде функция
- •30. Кірістірілгенфункциялар. Функциянышамадантысжүктеу.
- •31. Рекурсивный вызов функций. Безымянные функции.
- •32.Замыкания. Функция как замыкания
- •33. Замыкание.Замыкающие выражение
- •Неявные возвраты из замыканий с одним выражением
- •Сокращенные имена аргументов
- •Создание нового отсортированного массива#
- •Сортировка существующего массива на месте#
- •Сортировка массива с пользовательским заказом#
- •38.Объектно-ориентированное программирование в Swift. Экземпляры
- •43. Собственны еинициализаторы
- •44. Методы в структурах
- •45.Сыныптар құрылымдарға өте ұқсас, бірақ олар бірнеше маңызды нүктелермен ерекшеленеді.
- •Переопределение свойств
- •52.Псевдоним Any.Приведение типа Any.Псевдоним AnyObject
- •53.Инициализаторы
- •54.Деинициализаторы
- •Создание Auto Layout и его составляющих
- •. Понятие Segues. Виды Segues.
- •59. Создание программируемых переходов. (ProgrammaticSeguesiniOs)
- •60 .Передачаданныхмеждуконтроллерами. (Passing Data Between Controllers)
- •Отображение данных в мобильном приложении ввиде списка. Работа с таблицами в iOs (Working With Tables)
- •Понятие делегата и протокола на примере работы с таблицами. Назначение и принцип работы. (Table delegates and protocols)
- •Опциональные протоколы
- •Использование протоколов
- •Делегаты
- •Создание и отображение данных в ячейках (Creating custom table cell)
- •Принципы работы с Core Data (Working With Core Data, Saving to Core Data, Fetching data from Core Data, Deleting items from Core Data)
- •Понятие и назначение rest & crud (Understanding rest & crud)
- •67.Асинхронды
- •68. Создание post запросов (Making post requests)
- •Размеры и другие детали внешнего исполнения[править | править код]
Как проверить, есть ли значение в переменной с опциональным типом данных?
Это сделать достаточно просто: берём оператор сравнения "if" и задаём условие. Спрашиваем: эй, переменная, ты nil или не nil?
Если она отвечает "я сейчас nil, пустая", тогда ничего от неё не требуем. Разве что можно вывести на экран информацию о том, что значение переменной сейчас отсутствует, nil. Назовём это действие чистосердечным признанием! Если же переменная не nil, тогда её можно использовать в последующих действиях. Пример:
if optSample ==nil {
print ("optSample is nil")
} else {
print (optSample)
}
В части "if" мы задаём вопрос на проверку: если он положительный, то программа сообщает нам об этом, зажигает красный свет на дальнейшее использование. Если же значение не nil, то мы уже можем выполнять с ним те или иные действия. В данном случае мы просто выводим это имеющееся значение на экран.
Оператор guard называется оператором досрочного выхода . Подобно оператору if он проверяет истинность переданного ему условия . Отличие его в том, что он выполняет код в теле оператора только в том случае, если условие вернуло значение false .
СИНТАКСИС
guard проверяемое_условие else {
// тело оператора
}
После ключевого слова guard следует некоторое проверяемое утверждение.Если утверждение возвращае тtrue,то телооператора игнорируется и управление переходит следующему за guard коду. Если утверждение возвращает false,то выполняется код внутри телаоператора. Для данного оператора существует ограничение:его тело должно содержать один изследующих операторов—return,break,continue,throw.
12* Операторветвления switch. Fallthrough. Where.
.Оператор ветвления switch
Предположим, что в зависимости от полученной пользователем оценки стоит задача вывести определенный текст. Реализуем логику с использованием оператора if
Для этого можно использовать расширенный синтаксис оператора if, многократно повторяя блоки elseif.
СИНТАКСИС
switchпроверяемое_выражение {
case значение_1:
// первый блок кода
case значение_2, значение_3:
// второй блок кода
...
caseзначение_N:
// N-й блок кода
default:
// блок кода по умолчанию
}
• проверяемое_выражение ->Any — вычисляемое выражение, значение которого Swift будет искать среди case-блоков. Может возвращать значение любого типа.
• значение:Any — значение, которое может вернуть проверяемое выражение. Должно иметь тот же тип данных.
Ключевое слово fallthrough
С помощью ключевого слова fallthrough можно изменить логику функционирования оператора switch и не прерывать его работу после выполнения кода в case-блоке. Данное ключевое слово позволяет перейти к телу последующего case-блока. Рассмотрим следующий пример: представьте, что существует три уровня готовности к чрезвычайным ситуациям — А, Б и В. Каждая степень предусматривает выполнение ряда мероприятий, причем каждый последующий уровень включает в себя мероприятия предыдущих уровней. Минимальный уровень — это В, максимальный — А (включает в себя мероприятия уровней В и Б).
Реализуем программу, выводящую на консоль все мероприятия, соответствующие текущему уровню готовности к ЧС. Так как мероприятия повторяются от уровня к уровню, то можно реализовать задуманное с помощью оператора switch с использованием ключевого слова fallthrough
При значении "Б" переменной level на консоль выводятся строки, соответствующие значениям "Б" и "В". Когда программа встречает ключевое слово fallthrough, она переходит к выполнению кода следующего case-блока.
Ключевое слово where в операторе switch
Представьте, что в задаче про вольеры для драконов появилось дополнительное условие: поместить дракона в вольер № 3 можно только при условии, что в нем находятся менее пяти особей. Для хранения количества драконов будет использоваться дополнительная переменная. Включать в кортеж третий элемент и проверять его значение было бы неправильно с точки зрения логики, так как количество драконов не имеет ничего общего с характеристиками конкретного дракона. С одной стороны, данный функционал можно реализовать с помощью конструкции if-else внутри последнего case-блока, но наиболее правильным вариантом станет использование ключевого слова where, позволяющего указать дополнительные требования, в том числе к значениям внешних параметров
Ключевое слово where и дополнительные условия указываются в caseблоке для каждого значения отдельно. После where следует выражение, которое должно вернуть true или false. Тело блока будет выполнено, когда одновременно совпадет значение, указанное после case, и условие после where вернет true.