티스토리 뷰
Closures
클로저
클로저(Closures)는 코드 상에서 전달되어 사용될 수 있는 독립적인 블록입니다. Swift의 함수들은 전부 클로져이며 이름이 존재하냐, 없냐의 차이가 있을 뿐입니다. 또한 클로져는 할당받기, 인자전달, 반환 등이 모두 가능한 1급객체입니다. Swift의 클로져는 C언어, Objective-C언어 등의 타 프로그래밍 언어 상의 람다와 유사합니다.
클로져는 정의되어 있는 상수나 변수들에 대해 참조 및 저장해서 사용할 수 있습니다. 이를 "클로저가 상수, 변수들을 닫아둔다" 라고도 합니다. Swift에서는 클로저 캡쳐링 간의 메모리 관리를 방법을 제공합니다.
NOTE
클로져 캡쳐링(Closure Capturing)과 관련해서 익숙하지 않더라도 걱정할 필요는 없습니다. 더 자세한 내용은 Capturing Values 문서를 참고하시기 바랍니다.
클로저 종류
전역함수, 중첩함수(함수 안의 함수) 등의 함수들은 실제로 클로져의 특이 케이스에 해당합니다. 일반적인 클로져(Closure)는 아래의 3가지 형식 중 하나를 취하게 됩니다.
1) 전역 함수(Global Functions)는 이름을 갖고 있는 클로져이머, 어떠한 값도 캡쳐(참조)하지 않습니다.
2) 중첩 함수(Nested Functions)는 이름을 갖고 있으며, 클로져 내 블럭에서 값들을 캡쳐(참조)할 수 있습니다.
3) 일반 클로져의 경우 이름없는 클로져이며, 간단한 구문으로 표현됩니다. 일반 클로져도 값들을 캡쳐할 수 있습니다.
Characteristics of Closure
클로저 특징
Swift의 클로져 표현은 깨끗하고, 명확, 간결하도록 최적화되어있습니다. 또한 보통의 시나리오에서 가독성 있는 문맥으로 표현됩니다. 해당 최적화 사항들은 아래의 내용들을 포함합니다.
1) 문맥 상 추론할 수 있는 인자, 반환 타입들 제공
2) 단일 표현 클로져 상의 암시적 반환값
3) 간단하게 작성 가능한 인자 이름
4) 후행 클로저 방식 표현 제공
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
스위프트 Opaque Types 1) 불투명타입의 필요성 (0) | 2020.07.19 |
---|---|
Swift switch문 예약어, fallthrough 알아보기 (2) | 2020.07.18 |
스위프트 문법, 메모리 해제 간 소멸자 Deinit 동작방식 (1) | 2020.07.16 |
Swift 문법, 스위프트의 do-while, repeat-while 사용법 (0) | 2020.07.15 |
스위프트 문법 Nested Functions, 중첩 함수 사용법 (0) | 2020.07.14 |
- Total
- Today
- Yesterday
- swift알고리즘
- swift 기초
- 부스트코스
- 프로토콜
- swift reduce
- 알고리즘
- 자연어처리
- swift string
- CoreML
- SwiftUI
- swift언어
- 스위프트
- 백준swift
- 프로그래머스
- 김프매매
- 컬렉션
- swift
- Collection
- 개발자문서
- publisher
- swift 문자열
- swift문제
- 프로그래머스swift
- uikit
- Protocol
- ios
- Swift 알고리즘
- 백준알고리즘
- createML
- 알고리즘문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |