EEYatHo 앱 깎는 이야기

Swift ) defer - EEYatHo iOS 본문

iOS, Swift

Swift ) defer - EEYatHo iOS

EEYatHo 2021. 7. 21. 18:10
반응형

1. defer

함수안에 defer을 작성한다.

함수를 종료할 때, 가장 마지막에 수행할 명령들을 담을 수 있다.

defer로 묶인 코드는, 그 위치가 어디에 있던 함수 마지막에 실행된다.

 

함수 내부에서 파일을 열었을 때, 종료 전에 닫는 작업을 하는 등.

C++에서 메모리 해제하는 느낌으로 사용하면 좋다.

 

 

다만, defer은 함수가 종료될 때 실행된다.

그런데 guard에 의해서 함수가 종료될 때는 실행이 안된다 ㅡㅡ;

func priority(index: Int) {
    guard index > 0 else {
        print("index is lower than zero.")
        return
    }

    print("function work fine :)")

    defer {
        print("I am defer code")
    }
}

priority(index: 5)  // > function work fine :)    
                    // > I am defer code

priority(index: -5) // > index is lower than zero.

 

아니.. guard문을 얼마나 많이 쓰는데.. -ㅅ-

defer을 사용하면, guard로 종료될 때와, 아닐 때가 나눠지기 때문에 오히려 복잡도가 올라갈 듯하다.

 

이러니까 잘 안쓰지

Comments