higherOrder function

김윤홍·2024년 6월 16일
post-thumbnail

고차함수

map

map함수는 컬랙션 내부의 기존 데이터를 변형하여 새로운 컬렉션을 만든다(mapping)

다음은 Character형숫자를 Int형으로 변환하는 예시이다

let num = ["1", "2", "3", "4", "5"]
var numberArray: [Int] = []
for index in num {
    if let changeToInt = Int(index) {
        numberArray.append(changeToInt)
    }
}

print(numberArray)
// [1, 2, 3, 4, 5]

let stringArray = ["1", "2", "3", "4", "5"]
numberArray = stringArray.map { 
	if let changeToInt = Int($0) {
			return changeToInt
	}
	return 0
}

filter

filter함수는 기존 요소 중에서 조건에 만족하는 값에 대해 새로운 컨테이너를 만들어 반환한다.

다음은 filter함수를 이용한 짝수만 골라내는 예시이다

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers: [Int] = []

for number in numbers {
    if number % 2 == 0 {
        evenNumbers.append(number)
    }
}

let number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers = number.filter{ $0 % 2 ==0 }

reduce

reduce함수는 기존의 컨테이너의 요소에 대해 정의한 클로저로 맵핑한 결과를 새로운 결과로 반환

다음은 1부터 10까지 더하는 과정을 reduce로 사용한 예시이다

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var sum = 0

for i in numbers {
	sum += i
}

sum = numbers.reduce(0, +)

sum = numbers.reduce(0) { $0 + $1 }

0개의 댓글