iOS/Swift

SwiftUI 로 고차함수 예제코드

태애니 2025. 3. 19. 21:00
728x90

 

 

고차 함수 (Higher-Order Function)

고차 함수는 다른 함수를 매개변수로 받거나, 함수 자체를 반환하는 함수를 말한다.
Swift의 map, filter, reduce 같은 함수가 대표적인 고차 함수이다.

 

다른 함수를 매개변수로 받을 수 있다.
함수를 반환할 수 있다.
클로저(Closure)와 자주 사용된다.

 

import SwiftUI

struct MyHOFView: View {
    
    let array = [1,2,3,4,5,6,7,8,9,10,11,17,18]
    
    @State private var displayedArray: [String] = []
    
    var body: some View {
        VStack {
            HStack {
                Button("Map") {
                    displayedArray = array.map { "이 숫자는 \($0)" }
                }
                Button("Filter") {
                    displayedArray = array.filter { $0 % 2 == 0 }.map { "짝수: \($0)" }
                }
                Button("Reduce") {
                    // array.reduce(초기값, *) // 초기값을 1로 해야 모든 배열의 곱
                    // array.reduce(초기값, +) // 초기값을 0으로 해야 모든 배열의 합
                    
                    let result = array.reduce(1, *)
                    let result2 = array.reduce(1, { partialResult, next in
                        partialResult * next
                    }).description
                    displayedArray = ["곱한 값: \(result2)"]
                }
                Button("Reset") {
                    displayedArray = []
                }
            }
            .padding()
            
            List(displayedArray, id: \..self) { item in
                Text(item)
            }
        }
    }
}

#Preview {
    MyHOFView()
}
728x90