티스토리 뷰
forEach 함수
- 기존 배열 등의 각 아이템을 활용해서 각 아이템 별로 특정 작업을 실행한다.
- 클로저는 return 타입 없이 작업을 할 뿐이다.
- return → Void (새로운 배열을 반환하지 않는다.)
- 기존 배열의 아이템을 가지고 작업을 하는 것이다.
- 클로저는 return 타입 없이 작업을 할 뿐이다.
let numbers = [1, 2, 3, 4, 5]
numbers.forEach { num in
print(num)
}
numbers.forEach { print($0) }
compactMap 함수
- 기존 배열 등 각 아이템을 새롭게 매핑해서 변형하되, 옵셔널 요소는 제거하고, 새로운 배열을 리턴한다.
- map 함수 + 옵셔널 제거 기능이 있다고 생각하면 된다.
- optional binding의 기능이 내장되어있다.
let strings = [String?] = ["A", nil, "C"]
var result = strings.compactMap { $0 }
print(result)
// result = strings.filter { $0 != nil }.map { $0! }
let numbers = [-2, -1, 0, 1, 2]
// 0보다 큰 경우만 result에 담는다.
var result = numbers.compactMap { $0 >= 0 ? $0 : nil }
// result = numbers.filter { $0 >= 0 }
flatMap 함수
- 내부에 중첩된 배열을 벗겨준다.
- 중첩된 배열의 각 아이템을 새롭게 매핑하며, 내부 중첩된 배열을 제거하고 리턴한다.
- 매핑 방식은 클로저에서 정의한다.
var nestedArray = [[1, 2, 3], [4, 5, 6]]
print(nestedArray.flatMap{ $0 }
var nestedArray = [[[1,2,3], [4,5,6], [7, 8, 9]], [[10, 11], [12, 13, 14]]]
var result = nestedArray
.flatMap { $0 }
.flatMap { $0 }
print(result)
앨런님의 강의를 듣고 작성한 글입니다.
'Swift > Swift 문법' 카테고리의 다른 글
[Swift] 에러처리, (feat 피보나치수열) (0) | 2023.01.02 |
---|---|
[ARC 1] Swift의 메모리 관리 모델 (0) | 2022.12.30 |
[고차함수 4] reduce (0) | 2022.12.29 |
[고차함수 3] filter (0) | 2022.12.29 |
[고차함수 2] Map (0) | 2022.12.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ord
- 정답
- 리플릿
- 설명
- baekjoon
- level1
- 레플릿
- Code up
- 이것이 코딩테스트다
- python
- CodeUp
- 기초 100제
- CHR
- 16진수 입력
- 백준
- 코드 업
- Swift
- 깃
- for문
- 시간초과
- SwiftUI
- COMMIT
- 파이썬
- 반복문
- 코드업
- 부르트포스
- 깃허브
- 프로그래머스
- replit
- do while
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함