[swift] 클로저 람다 함수

스위프트에서 클로저는 함수와 비슷한 기능을 합니다. 클로저는 코드 블록을 사용하여 일부 기능을 정의하고 해당 블록을 나중에 실행할 수 있는 기능을 제공합니다. 클로저를 사용하면 함수의 입력 매개변수로 전달하고, 함수의 반환 값으로 사용하며, 변수나 상수에 저장할 수 있습니다.

클로저 표현식

스위프트에서 클로저는 중괄호 {}로 둘러싸여 있으며, 인수와 반환 유형, 함수 본문 등을 포함합니다. 클로저의 일반적인 형식은 다음과 같습니다.

{ (parameters) -> return type in
    // code here
}

예를 들어, 정수를 입력으로 받고 입력값을 제곱한 값을 반환하는 클로저는 다음과 같이 작성할 수 있습니다.

let square: (Int) -> Int = { (number) -> Int in
    return number * number
}

클로저 사용

클로저는 함수처럼 호출될 수 있습니다. 위에서 정의한 square 클로저를 호출하는 예제는 다음과 같습니다.

let result = square(5) // 25

클로저 사용 사례

클로저는 주로 함수의 매개변수로 전달되거나 함수의 반환 값으로 사용됩니다. 예를 들어, 배열 정렬 메서드에서 클로저를 사용하여 정렬 기준을 지정할 수 있습니다.

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]

let sortedNames = names.sorted(by: { (name1, name2) -> Bool in
    return name1 < name2
})

// 출력: ["Alex", "Barry", "Chris", "Daniella", "Ewa"]

위의 예제에서, sorted(by:) 메서드는 인수로 전달된 클로저에 따라 배열을 정렬합니다.

클로저는 강력하고 유용한 기능을 제공하여 스위프트에서 많이 사용됩니다.

결론

클로저는 스위프트에서 함수와 비슷한 기능을 제공하는 코드 블록입니다. 클로저는 다른 함수의 인수로 전달되거나 함수의 반환 값으로 사용될 수 있으며, 강력한 기능을 제공하여 다양한 상황에서 유용하게 활용될 수 있습니다.

참고: The Swift Programming Language - Closures


이 문서는 스위프트에서 클로저의 기본 개념과 사용법에 대해 설명했습니다. 클로저는 다른 언어에서의 람다 함수와 유사한 기능을 제공하며, 스위프트에서 많은 유연성과 편의성을 제공합니다.