class Stack<T> {
var items: [T?] = [T?]()
func push(_ item: T) {
items.append(item)
}
func pop() -> T? {
guard !items.isEmpty else {
return nil
}
return items.removeLast()
}
}
let stack = Stack<Int>()
stack.push(1)
let n1 = stack.pop()
//n1 is Optional(1)
let n2 = stack.pop()
//n2 is nil
print("n1 is \(n1!)")
print("n2 is", n2 as Any)
| Оператор guard, как и оператор if, выполняет код в зависимости от логического значения выражения. Используете оператор guard, чтобы убедиться, что условие истинно, для выполнения кода после него. В отличие от оператора if, оператор guard всегда имеет предложение else. Код внутри предложения else выполняется, если условие неверно. |