SwiftUI

[Swift] 스위프트 guard 구문 사용 예제


guard 구문은 불리언 표현식을 포함하며, true일 때만 guard 구문 다음에 위치한 코드가 실행된다.
guard 구문은 불리언 표현식이 false일 때 수행될 else 절을 반드시 포함해야 한다. else 절의 코드는 반드시 현재의 코드 흐름에서 빠져나가는 구문(예를 들어, return, break, continue 또는 throw 구문)을 포함해야 한다. 다른 방법으로, else 블록은 자기 자신을 반환하지 않는 다른 함수나 메서드를 호출할 수도 있다.

다음은 guard 구문의 구조다.

guard <조건문(불리언 표현식)> else { 
// 조건문이 false일 때 실행될 코드    
<종료 구문>
}
// 조건문이 true일 때 실행될 코드

기본적으로, guard 구문은 특정 조건을 만족하지 않은 경우에 현재의 함수 또는 반복문에서 빠져나올 수 있게 해준다.
다음의 코드는 함수 내에 guard 구문을 구현한 것이다.

func multiplyByTen(value: Int?) { 

   guard let number = value, number < 10 else {
         print("Number is too high")        
         return    
   }   
   
   let result = number * 10    
   print(result)
}

이 함수는 옵셔널 형태의 정숫값을 매개변수로 받는다. guard 구문은 값을 언래핑하기 위해 옵셔널 바인딩을 사용하며, 그 값이 10보다 적은지를 판단한다. 값을 언래핑할 수 없거나 언래핑한 값이 9보다 큰 경우, else 절이 실행되어 에러 메시지를 출력하고 이 함수를 빠져나가기 위하여 return 구문을 실행한다.

옵셔널이 10보다 작은 값을 가지고 있다면 guard 구문 다음에 있는 코드가 실행되어 그 값에 10을 곱한 결과가 출력된다. 앞의 예제에서 특별히 중요한 점은 언래핑된 number 변수는 guard 구문 밖의 코드에서도 유효하다는 것이다.
반면, if 구문 내에서 언래핑된 변수는 if 구문 밖에서는 유효하지 않다는 점에 유의하기 바란다.

-알라딘 eBook <핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍> (닐 스미스 지음, 황반석 옮김) 중에서

Leave a Reply

error: Content is protected !!