
guard 구문은 다음과 같은 구조를 가진다.
guard 조건문 else {
// 조건문이 false일 때 실행될 코드
<종료구문: return, break, continue, throw 등>
} // 조건문이 true일 때 실행될 코드
예시
func multiplyByTen(value:Int) {
guard let number = value, number<10 else {
print("Too high number")
return
}
let result = number * 10
print(result)
}
예시의 함수는 옵셔널 형태의 정수값을 매개변수로 받는다. guard 구문은 옵셔널 값을 언래핑하기 위해 옵셔널 바인딩을 사용하는 것.
위 예제에서 특별히 중요한 점은, 언래핑된 number 변수는 guard 구문 밖에서도 유효하다. (if구문 안의 변수는 if구문 안에서만 유효한 것과 구분됨)