← 메인으로

0805-2 클로저

클로저란, 코드의 블럭(덩어리)을 변수처럼 다룰 수 있게 해주는 기능이다. 쉽게 말하면, 함수처럼 동작하는 "익명 함수"라고 보면 된다.

[[0805-1 저장 프로퍼티, 연산 프로퍼티]]를 공부하다가 클로저라는 말을 보고 머리가 하얘졌다. 생각해보니 공부한 적 있는 것 같다. 다시 복습해보자.

let greet = { print("Hello World") } greet() 

클로저 형태

let add: (Int, Int) -> Int = { (a, b) in return a + b } print(add(3, 5)) // 8 출력 

언제 쓰이는가?

간단 예제

let numbers = [5, 3, 8, 1] let sorted = numbers.sorted { (a, b) in return a < b } print(sorted) // [1, 3, 5, 8] 

[!note] 이해가 되는 듯 하면서도 익숙하지가 않다. 어렵다. 그래도 그냥 하자.

클로저는 생략도 가능

let sorted = numbers.sorted { $0 < $1 } // 더 간단하게