guard Statement
작성일
guard
- guard문에는 else블록을 생략할 수 없다.
- 중첩을 피할 수 있다.
func validate(id: String?) -> Bool {
guard let id = id else {
return false
}
guard id.count >= 6 else {
return false
}
return true
}
validate(id: nil) // false
validate(id: "abc") // false
validate(id: "swiftlang") //true
guard문과 if문의 코드차이
func validateUsingIf() {
var id: String? = nil
if let str = id {
if str.count >= 6 {
print(str)
}
}
}
func validateUsingGuard() {
var id: String? = nil
guard let str = id else { return }
guard str.count >= 6 ele { return }
print(str)
}
- if문은 조건을 추가할수록 코드가 중첩이 된다.
- guard는 else문 이후에 사용이 가능하다.
보통, 조건이 하나이거나 조건 자체가 단순하면 If
복잡하거나 여러단계로 중첩해야할때는 guard문을 사용하는게 좋다.