HIT해
[Swift 기초문법 - 28] map 본문
728x90
map이란?
콜렉션(데이터의 모음) 이나 배열, set, dictionary 등의 형태를 바꾸는 고차함수.
배열의 요소들 하나하나의 형태를 T 다른 형태로 바꾸고 이를 배열 형태로 반환한다.
1. Array
let myNumbers : [String] numbers.map {
return "내 숫자 : \($0)"
}
//let myNumbers : [String] numbers.map { (aNumber : Int) in
// return "내 숫자 : \(aNumber)"
//}
2. Dictionary
let myPetDictionary = ["고양이" : "야옹, "강아지" : "멍멍"]
// let myPets : [String] = myPetDictionary.map { (animal:String, cry:String) in
// return "\(animal)의 울음소리는 \(cry)"
//}
//let myPets : [String] = myPetDictionary.map { animal, cry in
// return "\(animal)의 울음소리는 \(cry)"
//}
let myPets : [String] = myPetDictionary.map {
return "\($0)의 울음소리는 \($1)"
}
3. Set
let numberSet : Set<Int> = [1,1,1,2,3,4,4,4,5]
let myFavoriteNumbers : [String] = numberSet.map { aNumber in
return "\(aNumber * 10) + 입니다"
}
프로젝트 사용예시
nil이 있는 경우 언래핑 처리를 해주어야한다.
let FriendsArray : [String?] = ["철수", nil, "짱구"]
let myBestFriends : [String] = FriendsArray.map { aFreind in
let Friend = aFriend ?? ""
return "친한친구" + Friend
}
compactMap을 사용하면 자동으로 언래핑을 해주어서 nil인 경우 아예 값을 주지 않아서 map자체가 실행되지 않게 된다.
원래라면 새로 생성된 배열에 3개였다면( nil 포함 ) compactMap을 사용하면 2개가 할당된다.
let myBestFriends : [String] = FriendsArray.compactMap {$0}.map{
return "\($0)입니다"
}
이렇게 작성하면 한번 언래핑을 하고 맵을 사용하기때문애 nil값을 map에서 돌리지 않게 만들 수 있다.
'Swift > Swift 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 30] class func vs static func (0) | 2024.08.14 |
---|---|
[Swift 기초문법 - 29] compactMap, flatMap (0) | 2024.08.14 |
[Swift 기초문법 - 27] foreach enumerated (0) | 2024.08.14 |
[Swift 기초문법 - 26] private(set) (0) | 2024.08.14 |
[Swift 기초문법 - 25] 고차함수 sort, sorted 정렬 (0) | 2024.08.14 |