[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 타입 값이어야 합니다.
피드백은 언제나 환영입니다👍🏻 감사합니다🐕