@escaping

썹스·2022년 11월 5일
0

Swift 문법

목록 보기
34/68

📌 @escaping

일반적으로 클로저를 파라미터로 사용하는 함수의 실행이 종료되면 해당 클로저는 제거됩니다.

함수의 실행이 종료되더라도 클로저를 계속 사용하고 싶으면, "@escaping" 키워드를 사용하여 함수에서 클로저를 탈출시켜야 합니다.

"@escaping" 키워드는 함수 내부에 존재하는 클로저를 외부 변수에 저장하는 방식으로 클로저를 탈출시킵니다.

✅ 일반적인 클로저 사용

func hello(closure: () -> Void){
    closure()
}

hello {
    print("안녕~!")
}


/*
출력 결과
안녕~!
*/

✅ "@escaping" 키워드를 사용하여 함수 종료 뒤에도 클로저 사용

var saveClosure = {}   // 클로저를 저장할 변수 선언
func hello(closure: @escaping () -> Void){
    saveClosure = closure  // saveClosure 변수에 클로저를 할당하는 코드
}

hello {
    print("안녕~!")  // 클로저 실행X, saveClosure 변수에 클로저를 할당하는 코드 실행
}

saveClosure()  // 클로저 실행: 안녕~!
profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글