Ha
hankyeol
Swift | 문법
Optional 다루기
작성 완료
구조체와 클래스 1.
작성 완료
직렬화(Encode)와 역직렬화(Decode)
작성 완료
Enum - 열거형
작성 중
Swift에서의 함수
작성 중
동기와 비동기(sync - async) / 직렬과 동시(Serial - Concurrent)
작성 중
Subscript
작성 중
Swift에서의 함수
선언과 호출
함수는 일급 객체다.
클로저
배열의 고차함수
선언과 호출
함수는 일급 객체다.
클로저
배열의 고차함수
Created by
한결
Status
작성 중
선언과 호출
파라미터 이름을 지정한다는 점과 와일드카드를 이용하여 인자 이름을 조절할 수 있다는 점이 특징이다.
반환 타입 명시는
func name () → returnType { }
형식으로 지정한다.
함수 내부에 다른 로직 없이 바로 return 문이 올 경우, return 키워드를 달지 않아도 된다.
다른 프로그래밍 언어와 선언, 호출, 활용 방식이 거의 동일하다.
함수는 일급 객체다.
일급?
- 함수 자체를 변수/상수에 담을 수 있다. (함수의 반환 값을 담는걸 의미하지 않는다.)
- 반환값에 함수를 담을 수 있다. (= 함수 반환값에 객체를 전달할 수 있다.)
- 매개변수에 함수를 담을 수 있다.
1.
변수, 상수에 함수 그 자체를 담을 수 있다.
이것의 의미는
변수/상수의 타입을 함수로 한다
는 의미다.
(인자) → 반환값
함수의 호출 형식을 확장시켜 사용할 수 있다.
변수/상수에 함수를 담을 때, 동일한 이름의 함수를 담을 경우 타입에 대한 명확한 명시가 필요하다.
(이건 Swift 언어의 함수 오버로딩 지원으로 반드시 필요한 부분이다.)
2.
반환값에 함수(객체)를 담을 수 있다.
최종적인 반환 타입은 가장 마지막 → 의 오른쪽에 지정해준다.
함수 내부에서는 반환하는 구문에서 실행을 처리할 함수 자체를 담아줄 수 있다.
3.
함수 매개변수로 함수를 담을 수 있다.
함수의 인자로 콜백 함수를 담을 수 있다.
이 콜백 함수는, 조건에 따라서 함수 내부에서 반환 구문에서 특정 인자들을 담아서 실행시키는 용도로 인자에 들어온다.
인자에 반영해야 하는 콜백 함수를 익명 함수로 호출부에 정의해줄 수 있다.
result4와 같은 경우
클로저
배열의 고차함수
JavaScript와 비슷하게 forEach, map, filter, reduce 등의 대표적인 배열 기반의 고차함수를 지원한다.
고차함수에 인자로 들어가는 클로저를 지정하는 방식은 JavaScript와 다르다. 각 순환 요소를 $0 형태로 내부 인자로 사용할 수 있다.
Made with SlashPage