[iOS][Swift] guard 문

Youngkyu·2021년 8월 24일
1
post-thumbnail

고수들이 짠 코드들을 보다보면 모르는 구문들이 많아 코드가 이해안될 때가 많다. 그중 하나가 guard 이다. guard 문은 조건들을 걸러낼 때 사용한다.

그럼if 문을 사용하면 되는데, 왜 guard 를 사용하냐고 묻는다면 그 이유는 가독성에 있다.

먼저 guard 문의 사용법 부터 알아보자

guard 사용법

문법

guard " 조건 " else { 조건이 false 일 때 실행될 구문 }

사용 예시

// someValue 가 0이 아닐 경우에만 출력
guard someValue != 0 else { return }
print(someValue)

if 문과 비교

string을 전달받아 출력해주는 함수를 작성하는데
입력이 nil 로 들어오면 가드해버린다.

if 문 일 때

func printMessage(_ message: String?) {
	if message == nil { return }
    print(message!) // 이미 nil 검사를 했음!
}
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

profile
iOS를 공부하고 있는 대학생입니다.

0개의 댓글