Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 소프트웨어분석및설계
- iOS 개발 오류
- 애플 디벨로퍼 아카데미
- 치지직
- Swift 기능
- StateObject
- 데이터베이스
- useReducer
- 데이터베이스 공부
- global soop
- 네이버 부스트캠프
- Swift 디자인패턴
- swift문법
- 애플 디벨로퍼 아카데미 21주차 회고
- 네이버 치지직
- 애플 아카데미 후기
- ObservedObject
- OS
- react
- ObservableObject
- 숭실대
- sqoop
- apple developer academy 후기
- 애플 디벨로퍼 아카데미 후기
- 앱 비교 프로젝트
- Apple Developer Academy @ POSTECH
- SWIFT
- 운영체제
- Swift 문법
- 제앱소
Archives
- Today
- Total
사과하는 제라스
[Swift 문법] compactMap이란? 본문
목차
728x90
반응형
map을 공부하다가 보니 compactMap이란 것을 알게 되었다.
우리가 늘 상 쓰는 map은 nil을 포함하는 collection타입(배열, set 등등)에 대해서 적용 시 nil의 경우엔 따로 unwrapping도 해줘야 하고 처리를 해줄 필요가 있다.
하지만 compactMap을 쓴다면 nil인 요소들은 건너뛰어주고, unwrapping도 스스로 적용해서 optional한 collection에 대해 unwrapping이 되어 나오기에 편리하다.
다음을 보도록 하자.
import UIKit
arr = ["hello", "hi", nil, "ok"]
arr.map{
print($0+"라고 말했다.")
}
이럴 경우 에러가 뜬다. String?이기에 unwrapping이 필요하다.
import UIKit
var arr = ["hello", "hi", nil, "ok"]
arr.map{
if let element = $0 {
print(element+"라고 말했다.")
}
}
이렇게 하면 unwrapping이 된다. 하지만 nil을 버리고 그 자체로 값을 가져올 수가 없다.
그러니 nil을 제외하고서 가져오려면 compactMap을 쓰자.
import UIKit
var arr = ["hello", "hi", nil, "ok"]
arr.compactMap{ $0 }
이러면 arr에서 nil을 제외한 ["hello", "hi", "ok"]를 가져올 수 있다.
728x90
반응형
'제라스의 iOS 공부 > Swift 문법' 카테고리의 다른 글
[Swift 문법] Codable (0) | 2023.08.18 |
---|---|
[Swift 문법] Dictionary grouping (0) | 2023.08.18 |
[Swift 문법] class func와 static func (0) | 2023.08.18 |
[Swift 문법] 고차함수 with 클로저 (0) | 2023.08.18 |
[Swift 문법] inout 메소드 매개변수 (0) | 2023.08.17 |