Study/Swift

[Swift] guard

dog-paw 2021. 11. 15. 16:08

[Swift] guard란?

guard 뒤 Bool 값이 false라면 else의 블록 내부 코드를 실행하게 됩니다. 
이 내부 코드에는 자신보다 상위 코드 블록을 종료하는 코드가 반드시 들어가게 됩니다. (return, break, continue, throw 등)

func printTitle(mainTitle: String?) {
    guard let title = mainTitle else { return }
    print(title)
}


printTitle(mainTitle: "[Swift] guard")

출력

[Swift] guard

 

위 코드는 옵셔널 바인딩 역할로 이렇게 사용 시guard로 옵셔널 바인딩된 상수(title)를 guard 구문 실행 코드 아래부터 함수 내부의 지역 상수처럼 사용 가능합니다.

 


 

func printAge(age: Int?) {
    guard let unwrappedAge = age, unwrappedAge > 0 else {
        print("나이를 다시 입력해주세요.")
        return }
    
    print("나이는 \(unwrappedAge)입니다.")
}


printAge(age: 20)

 

출력

나이는 20입니다.

guard let으로 할 경우 쉼표(,)로 추가조건을 나열할 수 있고 조건은 Bool 타입 값이어야 합니다. 


피드백은 언제나 환영입니다👍🏻 감사합니다🐕