Defer

준우·2024년 1월 30일
0

Swift 이야기

목록 보기
6/19
post-thumbnail
  • 함수나 메서드가 반환되기 직전에 실행되도록 하는 코드 블록

  • defer 블록 내의 코드는 해당 블록이 정의된 범위(함수, 메서드, 루프 등)의 나머지 부분이 실행된 후에 실행됨.

  • defer 블록은 정의된 순서의 역순으로 실행

  • defer 블록은 현재 범위(함수, 메서드 등) 가 어떤 방식으로든 종료될 때 실행됨.

  • 예시) return, break, throw 등으로 함수 또는 메서드가 종료될 때 해당 defer 블록이 실행됨.

  • 여러 defer 블록이 있을 경우, 가장 마지막에 정의된 defer 블록이 가장 먼저 실행됨.

  • 예시 코드

func exampleFunction() {
    print("함수 시작")
    
    defer {
        print("첫 번째 defer 블록")
    }
    
    defer {
        print("두 번째 defer 블록")
    }
    
    print("함수의 다른 코드")
    
    // 함수의 나머지 부분
}

exampleFunction()

// 실행결과
// 함수 시작
// 함수의 다른 코드
// 두 번째 defer 블록
// 첫 번째 defer 블록

0개의 댓글