Today I Learned#9

무엇을 배웠는지 간단하게 기록합니다.
Jul 28, 2023
Today I Learned#9
Contents
Closures

Closures

클로저는 함수처럼 전달되거나 변수나 상수에 할당될 수 있다. 함수와 다르게 특정 이름 없이 마지막 결과 값을 반환하는 간결한 기능이다. 클로저는 단순히 보면 복잡해 보일 수도 있지만, 대부분의 사례에서 짧고 명료한 코드를 만들 수 있다. 클로저는 내포한 넓은 범위의 변수 및 상수에 참조를 유지하며, 이는 클로저가 해당 범위를 벗어난 경우에도 값을 유지할 수 있다. 클로저는 크게 세 종류로 작성할 수 있다.
  • 글로벌 함수: 이름이 있고 값을 캡처하지 않는 클로저
  • 중첩 함수: 이름이 있고, 주변 값들을 캡처할 수 있는 클로저
  • 클로저 표현식: 가벼운 문법인 경량화된 구문으로 작성된 이름이 없는 클로저
{ (parameters) -> returnType in statements } // 예제 let numbers = [5, 1, 7, 3, 8, 4] let sortedNumbers = numbers.sorted(by: { (number1: Int, number2: Int) -> Bool in return number1 < number2 }) print(sortedNumbers) // 결과: [1, 3, 4, 5, 7, 8]
클로저는 일급 객체(first-class citizen)로서, 함수와 동일하게 다른 함수에 전달될 수 있고, 함수에서 반환된 값처럼 변수에 할당할 수 있다. 클로저는 스위프트(Swift)에서 중요한 기능 중 하나로, 특정 작업이나 동작을 실행하기 위한 코드 블록을 가지고 있다. 이 블록은 자체적으로 값을 저장하거나 반환 할 수 있으며, 특정한 목적을 위해 변수와 상수를 캡처한다. 클로저는 다른 함수의 인수로 전달하여 사용할 수 있다.
Share article

김유진의 블로그