일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리스트뷰
- noncopyable
- 생명주기
- 구조체
- 클로저
- async
- 이스케이핑
- 스위프트
- observable
- 풀이
- 옵셔널
- weak
- 해시
- 프로그래머스
- rx
- RxSwift
- View
- 알고리즘
- Swift
- 백준
- Self
- Subject
- ios
- 안드로이드
- 프로퍼티
- 프래그먼트
- 차이
- concurrency
- 자바
- 연산자
- Today
- Total
목록이스케이핑 (2)
study record
클로저란? 클로저는 코드블럭으로 어떤 상수나 변수의 참조를 캡쳐해 저장할 수 있다. 스위프트는 캡처 관련 메모리를 알아서 처리한다. 클로저의 세 가지 형태 전역 함수 : 이름이 있고 어떤 값도 캡처하지 않는 클로저 중첩 함수 : 이름이 있고 관련한 함수로부터 값을 캡쳐할 수 있는 클로저 클로저 표현 : 경량화된 문법으로 쓰여지고 관련된 문맥으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 클로저에서는 argument label 은 쓰이지 않고 parameter name만 쓰임 closure("Sodeul") closure(name: "Sodeul") //error! 클로저는 익명이지만 함수이므로 1급 객체 함수의 특성을 다 가지고 있다. 클로저를 변수나 상수에 대입할 수 있다. 함수의 파라미터 타입으로 ..

클로저란? 어떤 기능을 하는 코드를 하나의 블럭으로 모아놓은 것이다. 함수도 클로저의 한 형태이다. 클로저의 큰 특징은 클로저가 선언된 위치에서 어떤 상태를 캡쳐하고 참조를 얻을 수 있다는 것이다. 탈출 클로저 Escaping Closure 탈출 클로저란 @escaping 가 붙은 클로저로 함수가 반환된 후 밖에서 실행시키는 클로저이다. 이를 활용하여 기존에 있던 함수 범위 내부의 자원들을 활용해서 비동기적 작업을 할 수 있다. 함수의 매개변수로 클로저를 전달하고, 전달받은 클로저를 실행하여 함수를 탈출한다. Swift에서는 함수의 파라미터로 전달된 클로저는 기본적으로 "함수 내부 스코프 안에서만" 사용이 가능하다. 기본 클로저는 함수 내부를 탈출할 수 없다는 의미에서 "탈출 불가"속성을 가지고 있다. ..