일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Rx5700
- 암드 신제품
- ryzen gen2
- radeon vega
- AMD
- 라데온 나비
- Zen2
- 라데온 베가
- 베가
- 라이젠 오버클럭
- 암드
- 라데온 신제품
- 라이젠 젠2
- 라이젠
- 라이젠 젠2 오버
- Rx5000
- ryzen zen2
- navi
- 나비
- 암드 라이젠 오버클럭
- 라데온
- 젠2
- vega 7
- Ryzen
- vega
- 젠2 오버클럭
- Radeon
- 라이젠 오버
- Today
- Total
SW
탈출 클로저(Escaping Closure) 탈출(Escape) 클로저 ? : 함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 경우 클로저가 함수를 탈출한다. 클로저를 매개변수로 갖는 함수를 선언할 때 매개변수 이름의 콜론(:) 뒤에 @escaping 키워드를 사용하여 클로저가 탈출하는 것을 허용한다고 명시해줄 수 있다. 예를 들어 비동기 작업을 실행하는 함수들은 클로저를 Completion handler 전달인자로 받아온다. 비동기 작업으로 함수가 종료되고 난 후 작업이 끝나고 호출할 필요가 있는 클로저를 사용해야 할 경우에 탈출 클로저(Escaping Closure)가 필요하다. ! @escaping 키워드를 따로 명시하지 않는다면 매개변수로 사용되는 클로저는 기본적으로 비탈출 클로저이다, ..
클로저는 자신이 정의된 위치의 주변 문맥을 통해 상수나 변수를 획득(Capture)할 수 있다.값 획득을 통해 클로저는 주변에 정의한 상수나 변수가 더 이상 존재하지 않더라도 해당 상수나 변수의 값을 자신 내부에서 참조하거나 수정할 수 있다.그러기에 클로저가 비동기 작업에 많이 쓰인다. 비동기 콜백(Call-Back)을 작성하는 경우, 현재 상태를 미리 획득해두지 않으면, 실제로 클로저의 기능을 실행하는 순간에는 주변의 상수나 변수가 이미 메모리에 존재하지 않는 경우가 발생한다. 이 부분을 해결하기 위해 중첩 함수를 사용한다.중첩 함수로 주변의 변수나 상수를 획득해 놓을 수 있다. 즉, 자신을 포함하는 함수의 지역변수나 지역상수를 획득할 수 있다. func makeIncrementer(forIncreme..