guard
используется для выхода из текущей области, если условие не выполняется.Вы можете использовать return
или throw
для выхода из функции или break
или continue
для выхода из токовой петли.Проблема в том, что у вас нет возможности выйти.
Если вы хотите использовать guard
на игровой площадке на верхнем уровне без сбоев (см. ответ Мартина R дляаварийное решение), вы можете заключить ваши операторы в цикл repeat-while false
для их однократного выполнения, а затем использовать break
в предложении else
guard
:
var optional: Int?
repeat {
guard let unwrapped = optional else {
print("optional is nil")
break
}
print("Optional is not nil, has value \(unwrapped)")
} while false
или в качестве альтернативыМартин Р предложил в комментариях использовать label: do { }
область с break label
:
var optional: Int?
checkNil: do {
guard let unwrapped = optional else {
print("optional is nil")
break checkNil
}
print("Optional is not nil, has value \(unwrapped)")
}