출처
Swift에서 if 와 guard중에 뭘 써야하나...
[Swift] if let vs guard let (응용편)
gurad 조건 else{
//조건이 false면 실행된다.
return
}
guard문을 사용하는 이유?
→ 가독성이 훨씬 좋아진다.
func solution() {
if condition1 {
if condition2 {
if condition 3 {
print("come in")
} else {
print("bye")
}
} else {
print("bye")
}
} else {
print("bye")
}
}
// 세 조건이 모두 참이면 come in, 하나라도 거짓이면 bye를 출력하는 함수이다.
func solution() {
guard condition1 else { return print("bye") }
guard [condition2](https://www.notion.so/22-12-27-84b65c1909c64641808722a79c483b01) else { return print("bye") }
guard condition3 else { return print("bye") }
print("come in")
}
→ str은 지역변수이므로 if block 밖에서 사용하면 에러가 난다!
if let str = data {
print("data :: \(str)")
} else {
print("data is nil")
}
print(str) // 에러!!
→ str은 전역변수이므로 guard block 밖에서 사용해도 에러가 나지 않는다.
guard let str = data {
return
}
print(str) // 에러가 생기지 않는다!