guard와 if의 차이는 guard는 항상 else문을 갖는다는 것이다.
⇒ else문을 강제하기 때문에 예외처리에 용이하다!
func guardTest(person: [String: String]) {
guard let name = person["name"] else { // else 를 안쓰면 compile error
print("person is nil")
return
}
print("Name: \\(name)")
guard let location = person["location"] else {
print("location is nil")
return
}
print("Location: \\(location)")
}
guardTest(person: ["name": "Jedi"])
print()
guardTest(person: ["location": "Seoul"])
print()
guardTest(person: ["name": "test", "location": "test"])
/*
Name: Jedi
location is nil
person is nil
Name: test
Location: test
*/
if문 대신 guard문을 사용하면 뭐가 좋을까?
⇒ 가독성이 좋다
- if 문
if 조건문 {
// 조건문 만족 시 실행
}
if 조건문 {
// 조건문 만족 시 실행
} else {
// 조건문 불만족 시 실행
}
- guard 문 → 메인 로직에 따라 조건문 정의할 때 용이
guard 조건문(메인로직) else {
// 조건문 불만족 시 실행
return
}
// 조건문 만족 시 실행
'🍎 iOS > Swift' 카테고리의 다른 글
[Swift] self (0) | 2023.05.06 |
---|---|
[Swift] reduce 사용하기 | sum (0) | 2022.07.28 |
[Swift] map, flatMap, compactMap ? (0) | 2022.06.28 |
[Swift] inout? | 함수 내부에서 파라미터의 값을 변경하고 지속하기 (0) | 2022.06.23 |
[Swift] Protocols | Delegate를 살짝 곁들인 (0) | 2022.02.25 |