closure2 [Swift] Escaping Closure 이스케이핑 클로저(Escaping Closure)escaping 클로저는 클로저가 함수의 인자로 전달됐을 때, 함수의 실행이 종료된 후 실행되는 클로저파라미터 타입 앞에 @escaping 이라는 키워드를 명시해야 함이스케이핑 클로저에서는 self를 명시적으로 언급해야 함이스케이핑 클로저가 사용되는 예로는 비동기로 실행되는 HTTP Request CompletionHandler이 있음var completionHandlers: [() -> Void] = []func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) { completionHandlers.append(completionHandler)} Non-Escaping .. 2023. 5. 20. [Swift] 클로저 (Closure) 클로저 (Closure) 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호"{}" 구분된 코드의 블록 이름이 없는 함수 클로저는 어떠한 상수나 변수의 참조를 캡처(capture)해서 저장 가능 Swift는 이 캡처와 관련한 모든 메모리를 알아서 처리 파라미터를 받을 수 있고, 반환 값이 존재할 수 있다는 점에서 함수와 동일 Swift 클로저는 최적화를 통해 깔끔하고 명확한 스타일을 가지고 있음 문맥(context)에서 인자 타입과 반환 타입의 추론 단일 표현식 클로저의 암시적 반환 축약된 인자 이름 후위 클로저 문법 { (매개변수 이름 : 매개변수 타입) -> 반환타입 in 클로저 표현식 코드 } 후행 클로저 (trailing closure) 클로저가 함수의 마지막 argument라면, .. 2023. 2. 6. 이전 1 다음 반응형