Оператор guard в языке программирования Swift
Язык программирования Swift, использующийся при разработке приложений для операционных систем iOS, macOS, watchOS, помимо хорошо известных операторов передачи управления в коде (таких как if и switch), содержит оператор досрочного (раннего) выхода guard.
Аналогично условному оператору if, guard проверяет выполнение некоторого условия и выполняет определенный действия в зависимости от результатов этой проверки. Однако, указанные действия выполняются в случае, если значение проверяемого условия ложно. Если значение проверяемого условия равно истине – выполняются действия, следующие за блоком guard.
В общем виде, констукция guard записывается следующим образом:
guard проверяемое_условие else { тело_оператора }
При программировании на языке Swift оператор guard используется в тех случаях, когда необходимо быть уверенным в том, что далее в программе некое условие обязательно выполнено.
Если условие истинно (равно true), то все действия тела оператора guard пропускаются, и программа продолжает выполняться с инструкции, следующей за конструкцией guard. Если условие ложно (равно false), то выполняется инструкции, содержащиеся в теле оператора (блок else). Блок else обязательно должен содержать операторы break, continue, return, throw (то есть операторы, использующиеся для выхода из блока кода, который содержал конструкцию guard).
Важно отметить, что этот оператор, в отличие от условного оператора if, всегда содержит блок else.
Пример использования:
func someFunction (userInfo: [String: String]) {
print(“Operator guard example”)
guard let username = userInfo[“username”] else {
print(“This is else-block»)
return
}
print(“Hello, \(username)!”)
}
Константы и переменные, значения которым были присвоены с использованием опционального связывания в условии оператора guard (например, константа username в примере), доступны далее в тексте программы.
Использование конструкции guard при программировании на языке Swift позволяет разработчику улучшить читаемость кода.

