728x90
반응형
스위프트에는 defer라는 구문이 있다.
앞서 얘기한 흐름 제어 구문중 하나인데 스위프트에 있는 특이한 기능중 하나이다.
defer는 "연기하다"라는 뜻을 가진 단어로 이를 생각해보면 defer구문의 기능이 무엇일지 예상이 될 것이다.
바로 일부 기능을 지연시키고자 할때 쓰는 구문이다. 하지만 이는 몇초를 지정한다던가 이런게 아니다.
defer는 if나 for처럼 블럭으로 작성한다.
defer는 다음과 같은 특징들을 갖는다.
• defer 블럭은 defer가 들어가있는 블럭에서 가장 마지막에 실행된다.(return 이후에 실행된다.)
• 만약 defer블럭을 지나지 않고 return이 실행되면 defer는 실행되지 않는다.
• defer블럭이 여러개가 있다면 마지막 defer블럭부터 거꾸로 실행된다.
• defer블럭이 중첩되있다면 가장 안의 defer블럭부터 안에서 밖의 순서로 실행된다.
이제 실제 예시를 보자.
예시
func abc() {
defer {
print("deferred")
}
return
}
abc() // deferred 출력.
//return보다 아래 있을 경우
func def() {
return
defer {
print("deferred")
}
}
def() // defer 블럭은 실행되지 않는다.
스위프트 문법 - defer, swift
728x90
반응형
'공부 > Apple' 카테고리의 다른 글
[스위프트] 델리게이트 패턴 (delegate) (0) | 2023.08.06 |
---|---|
[스위프트] 클로저(Closures) (0) | 2023.07.10 |
[스위프트] 함수(파트3) (0) | 2023.07.10 |
[스위프트] 함수(파트1) (0) | 2023.07.09 |
[스위프트] 옵셔널(Optional) (0) | 2023.07.08 |