Guard
작성일
Guard
기본적인 사용법은
guard <조건식 또는 표현식> else {
<조건식 또는 표현식의 결과가 false일 때 실행될 코드>
}
이런 방식이고, 전체 구문을 조기 종료하기 위한 목적으로 사용되는 구문이다.
func divide(base: Int) {
let result = 100 / base
print(result)
}
라는 구문이 있으면, 입력받은 값을 이용해서 100을 나누는 함수인데, 무슨 값이든 0으로 나누어서는 안된다. 따라서 이렇게
func divide(base: Int) {
guard base != 0 else {
print("연산할 수 없습니다.")
return
}
let result = 100 / base
print(result)
}
이런 방식으로 미리 오류를 방지해주는 역할을 해줄수 있는 것이다.
대신 주의할 점이 있는데,
func didve(base: Int) {
if base == 0 {
print("연산을 처리할 수 없습니다.")
return
}
let result = 100 / base
print(result)
}
guard 구문에서는 나누기 연산을 위해 충족되어야 하는 조건을 사용했다면,
if 구문에서는 반대로 연산이 실패할 조건을 사용하여 함수를 종료하도록 처리하고 있다.
장점은, 코드를 중첩해서 사용하지 않아도 된다는 장점이 있다.
func divide(base: int) {
guard base != 0 else {
print("연산할 수 없습니다.")
return
}
guard base >= else {
print("base는 0보다 커야 합니다.")
return
}
guard base < 100 else {
print("basesms 100보다 작아야 합니다.")
return
}
let result = (100 / base)
print(result)
}
이런 방식으로, 조건을 체크하여 실행 흐름을 종료 시킬 때에는 guard 구문을 사용하는게 좋다.