defer란 무엇인지 설명하시오.
Swift iOSInterviewquestions
defer
연기하다, 뒤로 미루다
코드가 블록을 어떤 식으로 빠져나가든 간에 꼭 실행해야 하는 마무리 작업을 할 수 있도록 도와줌
defer
구문 내부에는break
,return
등과 같이 구문을 빠져나갈 수 있는 코드 또는 오류를 던지는 코드는 작성하면 안됨- 여러 개의
defer
구문이 하나의 범위 내부에 속해 있다면 맨 마지막에 작성된 구문부터 역순으로 실행 try-catch-finally
와 비슷하지만,defer
는do-catch
말고 다른 블록에서도 사용 가능
for i in 0..<3 {
defer {
print("end!")
}
print("i: \(i)")
}
i: 0
end!
i: 1
end!
i: 2
end!
반복문 블럭이 끝날 때마다 defer
구문 내부 블럭의 내용이 실행되는 걸 확인할 수 있다.