반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • 개발
    • 프로그래머스
    • reduce
    • xcode
    • swfit
    • Java
    • ios
    • kotlin
    • 구축
    • level1
    • 타입
    • 공부
    • 코딩테스트
    • IT
    • 예제
    • map
    • JSP
    • swift
    • Android
    • 프로그래밍

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    [Swift] 고차함수 Map, Filter, Reduce
    Language/Swift

    [Swift] 고차함수 Map, Filter, Reduce

    2021. 4. 5. 11:41
    반응형

     기본적인 라이브러리를 공부하고 해야지 해야지 하다가 놓친게 있었는데

    코딩테스트를 하다가 계속 반복해서 찾게 되어서 별도로 포스팅 해보았습니다.

     

     

    0. 고차함수란?

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

    1. Map

     배열 원소의 변형에 매우 효과적입니다.

    var arr: [String] = ["Apple", "Banana", "Mango"]
    
    let lowwer = arr.map{ $0.lowwercased() }
    //lowwer = ["apple", "banana", "mango"]
    
    var chars: [Characters] = ["1", "2", "3", "4", "5"]
    
    let toInt = chars.map{ $0.isWholeNumber! }
    //toIn = [1, 2, 3, 4, 5,]

     

    2. Reduce

     배열 원소의 결합에 효과적입니다.

    숫자 연산뿐만 아니라 문자열 연산도 가능하니 활용도는 높은 것 같습니다.

     

    let nums = [1, 2, 3, 4]
    //매개변수는 시작값 입니다.
    let sum1 = nums.reduce(0) { $0 + $1 }
    print(sum) // 10
    
    let sum2 = nums.reduce(10) { $0 + $1 }
    print(sum) // 20
    
    let mul = nums.reduce(0) { $0 * $01 }
    print(mul) // 24
    
    
    let strings = ["i","am","groot"]
    
    let strSum = strings.reduce("[groot]":) { $0 + $1}
    print(strSum) //[groot]:iamgroot

    3. Filter

     조건에 맞는 배열의 원소값을 추출할 때 효과적입니다.

     

    let numbers = [3, 4, 5, 6]
    let odds = numbers.filter{ $0 % 2 == 1 }
    print(odds) // [3, 5]

     

    반응형
    저작자표시 (새창열림)

    'Language > Swift' 카테고리의 다른 글

    Swift에서 정규식 사용하기  (0) 2021.04.20
    [Swift] GCD로 경마 구현해보기  (0) 2021.03.24
    Swift GCD(Grand Central Dispatch) [5] - Group, WorkItem  (0) 2021.03.23
    Swift GCD(Grand Central Dispatch) [4] - RunLoop 실행과 종료  (0) 2021.03.23
    Swift GCD(Grand Central Dispatch) [3] - 예제 사용해보기  (0) 2021.03.22
      'Language/Swift' 카테고리의 다른 글
      • Swift에서 정규식 사용하기
      • [Swift] GCD로 경마 구현해보기
      • Swift GCD(Grand Central Dispatch) [5] - Group, WorkItem
      • Swift GCD(Grand Central Dispatch) [4] - RunLoop 실행과 종료
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바