[swift] 클로저 연산자

스위프트에서는 클로저를 간결하게 작성하기 위해 연산자를 사용할 수 있습니다. 클로저 연산자는 클로저를 간단하게 정의하고 사용할 수 있는 강력한 도구입니다.

클로저란 무엇인가요?

클로저는 일급 객체로서, 함수처럼 전달하거나 저장할 수 있는 블록입니다. 클로저는 중괄호 {}로 감싸진 코드 블록으로, 매개변수와 반환 값의 타입을 명시하여 사용할 수 있습니다.

let sum: (Int, Int) -> Int = { (a, b) in
    return a + b
}

위의 예제에서 sum은 두 개의 정수를 입력받아 그 합을 반환하는 클로저를 나타냅니다.

클로저 연산자 사용하기

스위프트에서는 클로저의 입력 매개변수와 반환 값의 타입을 생략할 수 있습니다. 이때 클로저 연산자를 사용하여 더 간결하게 클로저를 작성할 수 있습니다.

인자 타입 생략하기

만약 클로저가 단일 표현식을 가지고 있다면 입력 매개변수와 반환 값의 타입을 생략할 수 있습니다. 이때 in 키워드도 생략됩니다.

let numbers = [1, 2, 3, 4, 5]
let mappedNumbers = numbers.map { $0 * 2 } // 입력 매개변수와 반환 값의 타입 생략

위의 예제에서는 numbers 배열의 각 요소를 두 배로 만든 mappedNumbers 배열을 만들기 위해 클로저 연산자를 사용했습니다.

인자 이름 생략하기

만약 클로저의 입력 매개변수가 사용되지 않는다면, 입력 매개변수의 이름을 생략하여 $0, $1, $2 등의 자동 인자 이름을 사용할 수 있습니다.

let sortedNumbers = numbers.sorted { $0 < $1 } // 인자 이름 생략

위의 예제에서는 numbers 배열을 오름차순으로 정렬하기 위해 $0$1을 사용하여 클로저를 작성했습니다.

결론

클로저 연산자는 스위프트에서 매우 유용하게 사용될 수 있는 기능 중 하나입니다. 클로저를 간결하게 작성하고 읽기 쉽게 만들기 위해 클로저 연산자의 사용법을 잘 익혀두는 것이 좋습니다.

더 많은 정보는 스위프트 문서를 참고하세요.