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
- github
- 라이징캠프
- suffix()
- IOS
- 프로그래머스
- 대문자소문자
- MVC
- zip()
- 코드업 파이썬 기초 100제
- Segue
- String()
- xib
- joined()
- prefix()
- components()
- uisearchbar
- reduce()
- Autolayout
- alamofire
- swift
- GIT
- 알고리즘
- replacesubrange()
- tableView
- 싱글톤
- API
- 클론코딩
- uikit
- Info.plist
- 코딩테스트
Archives
- Today
- Total
Daeng iOS
[Swift] 고차함수 map(_:)에 대해.. 본문
이번에 정리할 내용은 고차함수 중 하나인 map 인데
고차함수가 무엇인지에 대한건 다음기회에 포스팅하는 걸루 하고~..
시퀀스 요소에 주어진 클로저를 매핑한 결과를 포함한 배열을 리턴한다
[ Parameters ] transform → 매핑 클로저, 이 시퀀스의 요소를 매개변수로 받아들이고, 같거나 다른 타입의 변환된 값을 반환 |
.
.
.
이게 무슨 말이냐면
배열안에 요소들을 매개변수로 받아들이고
정의한 클로저의 형태에 맞게 일괄 처리한 배열을 반환한다!
그렇기 때문에 for문보다 쉽고 간결하게 표현이 가능하다
나는 일괄 처리를 한다는 느낌으로 가장 잘 이해가돼서
적극 활용하고 있다
(map 이 뭔지도 모르고 인터넷에서 막 가져다가 썼던 과거를 반성하며,,,)
코딩을 한번 해보면 좀 더 이해가 되는데
//배열 [1,2,3,4] 에서 2씩 곱한 String으로 된 배열을 구하는 예제
let array = [1,2,3,4]
let multipliedArr = array.map({(value: Int) -> String in return String(value * 2)})
print(multipliedArr)
//추론하여 코드를 생략 가능, value의 타입 Int 와 return 키워드는 추론을 통해 생략 가능
let multipliedArr2 = array.map({(value) -> String in String(value * 2)})
print(multipliedArr2)
// 반환 타입도 생략 가능
let multipliedArr3 = array.map({(value) in String(value * 2)})
print(multipliedArr3)
//value는 여러번 사용하므로 $0으로 축약 가능
let multipliedArr4 = array.map({String($0 * 2)})
print(multipliedArr4)
//괄호도 생략 가능
let multipliedArr5 = array.map {String($0 * 2)}
print(multipliedArr5)
//만약 값에 문자열 "num: " 을 추가하고 싶다면
let multipliedArr6 = array.map {"num: \($0 * 2)"}
print(multipliedArr6)
//character형으로 변환된 result를 map을 사용하여 String형 배열로 변환
//>는 내림차순 정렬 <는 오름차순 정렬(디폴트임)
let arr: [Character] = ["1","2","3","a","f","0"]
let arrTest = arr.sorted(by: >).map({String($0)})
print(arrTest)
여기서 $0은 첫번째 매개변수라는 의미이다
끝~
'IOS > Swift' 카테고리의 다른 글
[Swift] String(repeating: count:)에 대해 .. (0) | 2024.05.07 |
---|---|
[Swift] components()와 split()에 대해.. (0) | 2024.05.07 |
[Swift] readLine(strippingNewline:)에 대해 (0) | 2024.05.06 |
[Swift] print(_:separator:terminator:)에 대해 (0) | 2024.05.06 |
[iOS/Swift] Model 안의 멤버변수로 배열 정렬하기 (0) | 2022.10.24 |