[문법] defer 구문

2021. 12. 15. 21:18🍏/Swift

· defer

현재 코드 블록을 나가기 전에 꼭 실행해야 하는 코드.

 

defer

·  defer 구문은 선언 된 역순으로 실행

defer의 실행은 역순

 

defer가 구문안에서 실행되는 순서

·  defer 구문이 실행되지 않는 경우 3가지
1. throw를 이용하여 오류를 던질 경우

throw로 오류를 던진 경우

2. Guard문을 이용하여 중간에 함수를 종료하는 경우

Guard문을 이용하여 함수 종료

함수내의 읽어진 부분의 defer 까지만 실행

3. return값이 Never인 경우

-> Never / abort()

오류로 인해 함수를 반환하지 않고 종료하기 때문에 defer 호출하지 못함