Apple-CS-interview / iOS-CS-interview

7 stars 1 forks source link

defer가 호출되는 순서는 어떻게 되고, defer가 호출되지 않는 경우를 설명하시오. #26

Open Do-hyun-Kim opened 1 year ago

Do-hyun-Kim commented 1 year ago

defer가 호출되는 순서는 어떻게 되고, defer가 호출되지 않는 경우를 설명하시오.

📲 defer 호출되는 순서

💁‍♂️defer가 호출되지 않는 경우

vichye-1 commented 1 year ago

defer가 호출되는 순서

func test() {
    print("First print")

    defer { print("!!defer!!")}

    print("Second print")
}
test()

/* 결과
First print
Second print
!!defer!
*/
func test3() {
    defer { print("1st defer - first") }
    defer { print("2nd defer") }
    defer { print("3rd defer - last") }
}
test3()

/* 결과
3rd defer - last
2nd defer
1st defer - first
*/
func test4() {
    defer {
        defer {
            defer {
                print("1st defer - inner")
            }
            print("2nd defer")
        }
        print("3rd defer - outer")
    }
}
test4()

/* 결과
3rd defer - outer
2nd defer
1st defer - inner
*/

defer가 호출되지 않을 때

func test2() {
    print("1st print")
    return

    defer { print("!!defer!!")}

    print("2nd print")
}
test2()

/* 결과
1st print
*/

출처

ronick-grammer commented 1 year ago

defer의 호출 순서

defer가 호출되지 않는 경우

📝 참고 사이트

Hminchae commented 1 year ago

defer가 호출되는 순서