일급 시민(함수 or 객체)
1. 변수나 데이터 구조(컬렉션) 안에 담을 수 있다.
2. 파라미터로 전달할 수 있다.
3. 리턴값으로 사용할 수 있다.
Swift 클로저
let add: (Int, Int) -> Int = { (a: Int, b: Int) in
return a + b
}
let res: Int = add(1, 2)
print(res) // 3
swift의 함수는 일급함수가 아니다.
swift의 클로저는 일급함수이다.
함수가 일급함수인 경우 : javascript, kotlin, python ..
javascript는 함수를 변수 안에 담고, 리턴값으로 사용할 수 있다.
function calculator(mode){
var options = {
'+' : function(left, right){return left + right},
'-' : function(left, right){return left - right},
'*' : function(left, right){return left * right},
'/' : function(left, right){return left / right}
}
return options[mode];
}
console.log(calculator('*')(2, 3)); // 6
함수가 일급함수가 아닌 경우 : C ..
c는 함수 포인터를 이용하여 전달해야 한다.
#include <stdio.h>
/* 더하기 함수 */
int add(int a, int b) {
return a + b;
}
/* 함수 포인터를 받을 결과 출력 함수 */
void printResult(int (*fp)(int, int)) {
printf("%d\n", fp(1, 2));
}
/* 메인 함수 */
int main()
{
executer(add); //3
return 0;
}
'공부하기 > Swift' 카테고리의 다른 글
Swift) 값 타입과 참조 타입 그리고 클래스와 구조체 (Value type & Reference type, Class & Struct) (0) | 2021.01.05 |
---|---|
Swift 앱의 생명주기와 헷갈리는 UI 관련 개념 정리 (0) | 2020.12.14 |
Swift 중요한 용어와 개념 (0) | 2020.12.14 |
댓글