고차함수 map

작성일

고차함수 map

// 맵 고차함수를 통해 콜렉션의 요소를 변형시킬 수 있다.
let friendsArray = ["철수", "영희", "수잔", "제임스", "마크"]
// 배열 맵핑
let myFriends = friendsArray.map{
  "내친구: " + $0
}
print(myFriends)

출력

["내친구: 철수", "내친구: 영희", "내친구: 수잔", "내친구: 제임스", "내친구: 마크"]

딕셔너리 맵핑

let myPetDictionary = ["고양이": "야옹", "강아지": "멍멍", "송아지": "음메"]

let petResult = myPetDictionary.map{ (kind, sound) in 
  return("우리집: \(kind)", "울음소리: \(sound)")
}
print(petResult)

출력

[("우리집: 송아지", "울음소리: 음메"), ("우리집: 강아지", "울음소리: 멍멍"), ("우리집: 고양이", "울음소리: 야옹")]

셋 맵핑

let numbersSet : Set<Int> = [1,1,2,3,4,4,5]

let result = numbersSet
      .map({ (number: Int) -> Int in
            return number * 10
      })
print("mappedNumbersSet: \(result)")

출력

mappedNumbersSet: [50, 10, 20, 40, 30]

클로저를 활용

let numbersSet : Set<Int> = [1,1,2,3,4,4,5]

let result = numbersSet
      .map({ (number: Int) -> Int in
            return number * 10
      })
print("mappedNumbersSet: \(result)")
let resultOne = numbersSet.map({ (number: Int) in
                  return number * 10
                })

let resultTwo = numbersSet.map({ (number: Int) in number * 10})

let resultThree = numbersSet.map({ $0 * 10 })

let resultFour = numbersSet.map{ $0 * 10 }

print("mappedNumbersSet: \(resultOne)")
print("mappedNumbersSet: \(resultTwo)")
print("mappedNumbersSet: \(resultThree)")
print("mappedNumbersSet: \(resultFour)")

출력

mappedNumbersSet: [20, 50, 10, 30, 40]
mappedNumbersSet: [20, 50, 10, 30, 40]
mappedNumbersSet: [20, 50, 10, 30, 40]
mappedNumbersSet: [20, 50, 10, 30, 40]
mappedNumbersSet: [20, 50, 10, 30, 40]

클로저를 사용해서 모양만 다를뿐 다같은 함수인걸 알 수 있다.