[iOS_Swift] guard, guard let문

2021. 10. 20. 01:53Programming/iOS_Swift

요즘 Guard문을 타입캐스팅을 할 때나 옵셔널바인딩을 할 때 주로 활용 중인데, 이걸 내가 제대로 이해를 못하고 쓰는 느낌이 강해서 개인적으로 정리가 필요했다.

 

guard문

guard문에 대해서 먼저 이해를 해보자면, guard문은 if ~ else문처럼 일종의 조건문이라고 이해하면 쉬울 것 같다. 둘의 차이점은 guard문이 if문에 비해서 상대적으로 간결하고 읽기 좋은 코드를 작성할 수 있다는게 첫 번째 차이점이며, 두 번째 차이점은 guard문의 경우 return, break 등의 명령어가 반드시 필요하다. 예시를 통해 보자.

 

숫자가 3보다 큰지를 판단하는 함수 안에 guard문과 if else문을 두개 다 넣었다. 두개다 모두 같은 결과를 반환하며, guard문이 확실히 간결하고 읽기 편하다는 것을 확인할 수 있다.

 

guard let문

guard문은 또한 옵셔널 바인딩을 할 때도 활용이 된다.

if let을 활용한 옵셔널 바인딩과 guard let을 활용한 옵셔널 바인딩을 해줬다. myName이 nil값이므로 guard let문 이하는 전혀 실행되지 않았음을 확인할 수 있다.

 

값이 있다면 정상적으로 실행이 된다 !!