guard проверяет условие и обязан выйти из scope при провале; держит «счастливый путь» кода без глубокой вложенности.
Разбор
guard let для optional.
else обязателен с return/throw/break/continue.
- Улучшает читаемость длинных функций.
- Не заменяет
if для двусторонней логики равной важности.
Итог
guard выносит ошибки и nil наверх, оставляя основной поток плоским.