[Swift 기본 문법] 고차함수 - map, filter, reduce

dora·2024년 3월 17일

Swift 기본 문법

목록 보기
12/12

고차 함수

전달 인자를 함수로 전달받거나, 함수 실행의 결과를 함수로 반환하는 함수

map

컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너 생성

let numbers: [Int] = [0,1,2,3,4]
var doubleNumbers: [Int]
var strings: [String]

doubleNumbers = [Int]()
strings = [String]()

for number in numbers{
	doubleNumbers.append(number * 2)
    strings.append("\(number)")
}

print(doubleNumbers)
print(strings)

doubleNumbers = numbers.map({
	(number: Int) -> Int in
    return number * 2
})

strings = numbers.map({
	(number: Int) -> String in
    return "\(number)"
})

print(doubleNumbers)
print(strings)

doubleNumbers = numbers.map{ $0 * 2}
print(doubleNumbers)

filter

컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출

let evenNumbers: [Int] = numbers.filter{
	(number: Int) -> Bool in
    return number % 2 == 0
}

print(evenNumbers)

let oddNumbers: [Int] = numbers.filter{ $0 % 2 != 0}
print(oddNumbers)

reduce

컨테이너 내부의 콘텐츠를 하나로 통합

let someNumbers: [Int] = [2,8,15]

var result: Int = 0

for number in someNumbers{
	result += number
}

print(result)

let sum: Int = someNumbers.reduce(0,{
	(first: Int, second: Int) -> Int in
    return first + second
})

print(subtract)

let sumFromThree = someNumbers.reduce(3) {$0 + $1}
print(sumFromThree)
print(someNumbers.reduce(2){$0 + $1})

0개의 댓글