티스토리 뷰
안녕하세요 Hani입니다.
클로저를 공부하다가 맞이한 일급객체(First class Citizen)..!
일급객체에 대한 이해가 선행되어야할 것 같아서 바로 알아보러 가겠습니당🔥
일급객체는 다음 세 가지 조건을 만족하는 객체를 말합니다.
- 변수나 상수에 저장 및 할당을 할 수 있어야 합니다.
- 인자(Argument)로 전달될 수 있어야 합니다.
- 반환할 수 있어야 합니다.
스위프트의 함수는 일급객체의 조건을 만족시킨다고 하는데요..!
일단 만만한 함수를 하나 만들어놓고 스위프트에서의 함수가 일급객체에 속하는지 확인해 보겠습니다.
//function
func summation(_ L: Int, _ R: Int) -> Int {
return L + R
}
//변수나 상수에 저장 및 할당을 할 수 있어야 합니다.
var firstResult = summation(_:, _:); //변수에 함수 자체를 할당
var firstResult = summation(3, 2); //반환 결과를 할당
//인자(Argument)로 전달될 수 있어야 합니다.
var secondResult = summation(5, summation(_:, _:));
//반환할 수 있어야 합니다.
func whatIsResult(_ operator: String) -> (Int, Int) -> Int {
if operator == "plus"
return summation
else
return subtraction
}
var thirdResult = whatIsResult("plus")(3, 2)
함수가 일급객체의 조건을 만족시키는 것을 알게됐습니다.
공부하다보니 Functional Programming, 고차 함수 등등 공부해야할게 많이 생기네요.
글이 길어질 것 같아서 위 주제는 다음에 이어서 써보겠습니다. ☺️
References
https://cocoacasts.com/swift-fundamentals-what-are-first-class-functions-in-swift
https://machiner.tistory.com/24
https://www.swiftbysundell.com/articles/first-class-functions-in-swift/
'Swift' 카테고리의 다른 글
[Swift] 클래스 강한 순환 참조 (0) | 2021.05.17 |
---|---|
[Swift] ARC (Automatic Reference Counting) 정리 (0) | 2021.05.17 |
[스위프트] 클로저 정리 (0) | 2021.05.14 |
[Swift] Init vs Convenience Init (0) | 2021.05.01 |
[Swift] Deque, OrderedSet, OrderedDictionary (0) | 2021.04.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- WWDC16
- test coverage
- MeTal
- 포드 풀커슨 알고리즘
- 최단경로 문제
- 최대 매칭
- mach-o
- HIG
- WWDC19
- 최단경로문제
- 다익스트라 시간복잡도
- WWDC17
- State Restoration
- CompositionalLayout
- 벨만포드 알고리즘
- 최단경로 알고리즘
- CPU와 Memory
- 코딩대회
- observeOn
- 컴퓨터 추상화
- 에드몬드 카프 알고리즘
- IOS
- Testable
- 부스트캠프 6기
- 강한 순환 참조
- 네트워크 플로우
- rxswift
- 벨만포드 시간복잡도
- 네트워크 유량
- WWDC21
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함