클로저3 [Swift] 클로저 클로저(Closures)어떤 상수나 변수의 참조를 캡처(값의 참조를 갖는다.)해 저장할 수 있는 코드 블럭Swift는 관련된 메모리를 알아서 처리 클로저의 형태전역 함수 : 이름이 있고 어떤 값도 캡처하지 않는 클로저중첩 함수 : 이름이 있고 관련한 함수(하위→상위)로 부터 값을 캡처 할 수 있는 클로저클로저 표현 : 경량화 된 문법으로 쓰여지고 관련된 문맥(context)으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 클로저 표현 (Closure Expressions)인라인 클로저를 명확하게 표현하는 방법으로 문법에 초점이 맞춰져있음코드의 명확성과 의도를 잃지 않으면서도 문법을 축약해 사용할 수 있는 다양한 문법의 최적화 방법을 제공 정렬 메소드(The Sorted Method)Swift 표준 라이브.. 2024. 3. 18. [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 다음 반응형