Higher Order Functions

윤주현·2023년 8월 16일

Swift

목록 보기
11/13

Higher Order Functions

고차 함수는 함수를 전달받거나 리턴하는 함수다. 가장 많이 사용하는 3가지 고차 함수는 다음과 같다.

Map

함수를 사용하여 배열을 변환시킨다.

// [ x1, x2, ... , xn].map(f) -> [f(x1), f(x2), ... , f(xn)]
// i.e. [1, 2, 3] -> ["1", "2", "3"]

// One way

var numbers1 = [1, 2, 3]
var strings1: [String] = []
for number in numbers1 {
    strings1.append("\(number)")
}

// But a better way

var numbers2 = [1, 2, 3]
var strings2 = numbers2.map { "\($0)" } // closure

for문을 대체할 수 있는지 생각해보자! for문을 사용하는 것보다 간단하게 코딩할 수 있다.

Filter

특정 조건을 만족시키는 배열의 값들만 걸러낸다.

var numbers3 = [1, 2, 3, 4, 5, 6, 7, 8]
var evenNumbers = numbers3.filter { $0 % 2 == 0 } // [2, 4, 6, 8]
var oddNumbers  = numbers3.filter { $0 % 2 == 1 } // [1, 3, 5, 7]

Reduce

배열의 값들을 결합해서 하나의 값으로 만든다.

var numbers4 = [1, 2, 3, 4, 5]
var sum = numbers4.reduce(0) { $0 + $1 } // 15

0개의 댓글