일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- python tkinter 인터페이스
- 한글입력 안됨
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 맥 mysql
- 객체
- 객체지향
- 한글입력 씹힘
- 한글입력 오류
- max apache
- 한글잘림
- python GUI 사용하기
- 맥 아파치
- max MySQL
- 닐 스미스 지음
- 자바스크립트 class
- 비주얼스튜디오 코드
- 제이쿼리연결
- 제이펍 출판
- 기획자랑 사이좋게 지내고 싶다
- 황반석 옮김
- 배열 분해 할당
- 블록 스코프
- 자바스크립트 객체 만들기
- jquery 사용하기
- SwiftUI 기반의 iOS 프로그래밍
- 자바스크립트 객체
- 생활코딩
- 자바스크립트 배열 할당
- 자바스크립트
- 한글입력 잘림
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- python tkinter 인터페이스
- 한글입력 안됨
- 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍
- 맥 mysql
- 객체
- 객체지향
- 한글입력 씹힘
- 한글입력 오류
- max apache
- 한글잘림
- python GUI 사용하기
- 맥 아파치
- max MySQL
- 닐 스미스 지음
- 자바스크립트 class
- 비주얼스튜디오 코드
- 제이쿼리연결
- 제이펍 출판
- 기획자랑 사이좋게 지내고 싶다
- 황반석 옮김
- 배열 분해 할당
- 블록 스코프
- 자바스크립트 객체 만들기
- jquery 사용하기
- SwiftUI 기반의 iOS 프로그래밍
- 자바스크립트 객체
- 생활코딩
- 자바스크립트 배열 할당
- 자바스크립트
- 한글입력 잘림
Archives
- Today
- Total
java,javascript,android,php,sql,공부용,메모용
고차함수, map, filter, reduce / Xcode SwiftUI Playground 공부 본문
모바일/SwiftUI ios 공부
고차함수, map, filter, reduce / Xcode SwiftUI Playground 공부
yy_dd2 2021. 11. 29. 14:59반응형
고차함수
- 다른 함수를 전달인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수
- 스위프트의 함수(클로저)는 일급시민(일급객체)이기 때문에
함수의 전달인자로 전달할 수 있고 함수의 결과값으로 반환할 수 있다
- 스위프트에서 제공하는 map, filter, reduce 고차 함수가 있고
컨테이너 타입(Array, Set, Dictionary 등) 에 구현되어 있다.
map (변형)
map 함수는 컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너를 생성한다.
for 구문과 비슷하게 사용할 수 있지만
map 을 사용하게 되면 클로저 상수를 통해 코드의 재사용이 용이해지고
컴파일러 최적화 측면에서 성능이 좋아진다.
let numbers = [0,1,2,3]
let mapArray = numbers.map { (number) -> Int in
return number * 2
}
print("map \(mapArray)")
filter (추출)
filter 함수는 컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출한다.
filter 의 매개변수로 전달되는 함수의 반환 타입은 Bool 이다.
true 면 값을 포함, false 면 값을 배재
map 처럼 새로운 컨테이너를 생성해서 값을 반환
// 클로저 표현으로 간소화 작성된 필터
let intArray = [10,5,20,13,4]
let filterArray = intArray.filter{ $0 > 5 }
print("filter \(filterArray)")
reduce (결합)
reduce 함수는 컨테이너 내부의 콘텐츠를 하나로 통합해준다.
정수 배열이면 전달 받은 함수의 연산 결과로 합쳐주고, 문자열 배열이면 문자열을 하나로 합쳐준다.
첫 번째 매개변수를 통해 초기 값을 설정할 수 있다. 초기 값을 클로저를 통해 $0 로 사용할 수 있다.
다른 고차 함수들과 연결해서 사용할 수 있다.
let someArray = [1,2,3,4,5]
let reduceResult = someArray.reduce(2) {
(result: Int, element: Int) -> Int in
print("\(result) + \(element)")
return result + element
}
print( "reduce \(reduceResult)")
반응형
'모바일 > SwiftUI ios 공부' 카테고리의 다른 글
화면전환 개념, UINavigationController, ViewControllor / Xcode SwiftUI 앱맨들기 (0) | 2021.12.01 |
---|---|
명언생성기, 버튼 클릭시 박스안에 내용이 랜덤으로 나오게하기/ Xcode SwiftUI 공부 (0) | 2021.11.29 |
클로저, closures / Xcode SwiftUI Playground 공부 (0) | 2021.11.29 |
try-catch, do-catch, try?, try!오류처리, 예외처리/ Xcode SwiftUI Playground 공부 (0) | 2021.11.29 |
옵셔널 체이닝 / Xcode SwiftUI Playground 공부 (0) | 2021.11.29 |
Comments