고수들이 짠 코드들을 보다보면 모르는 구문들이 많아 코드가 이해안될 때가 많다. 그중 하나가 guard
이다. guard
문은 조건들을 걸러낼 때 사용한다. 그럼if
문을 사용하면 되는데, 왜 guard
를 사용하냐고 묻는다면 그 이유는 가독성에 있다.
먼저 guard
문의 사용법 부터 알아보자
guard 사용법
문법
guard " 조건 " else { 조건이 false 일 때 실행될 구문 }
사용 예시
// someValue 가 0이 아닐때만 출력
func someFunc(someValue: Int?) {
guard someValue != 0 else { return }
print(someValue)
}
someFunc(someValue: 5)// 5
if 문과 비교
string을 전달받아 출력해주는 함수를 작성해 보겠습니다.
if 문 일 때
func printMessage(_ message: String?) {
if message == nil { return }
print(message!) // 이미 nil 검사를 했으므로 force unwrapping 가능
}
printMessage(string)
guard 문 일 때
func printMessage(_ message: String?) {
guard message != nil else { return }
print(message!)
}
printMessage(string)
조건식에 이 함수가 수행하는데 필요한 조건을 그대로 적는다는 점에서 guard
구문은 코드를 분석할 때 if
문에서 부정적인 조건식으로 검사하는 것보다 훨씬 가독성이 좋아진다.
guard 옵셔널 바인딩
func printMessage(_ message: String?) {
guard let letMessage = message else { return }
print(letMessage)
}
printMessage(string)
guard
를 사용하면 if
로 옵셔널 바인딩했을 때와 달리 { } 괄호 밖에서도 사용가능하다.
매우 유용 !!
참고 링크
https://brunch.co.kr/@robinkangwgmv/4
https://zetal.tistory.com/entry/swift-guard
'iOS' 카테고리의 다른 글
[iOS]카카오 로그인 구현 시 키 값 숨기기 (0) | 2022.09.11 |
---|---|
[iOS][Swift] 프로토콜 vs 인터페이스 차이점 (1) | 2022.09.11 |
[iOS][Swift] 코딩 컨벤션 (0) | 2022.09.11 |
[iOS][Swift] Class 와 Struct (1) | 2022.09.11 |
[iOS][Swift] 투두리스트 앱 만들기 - UI 구성 AutoLayout Constraint 걸기 (0) | 2022.09.11 |