swift에서 함수는 1급 객체(first class object)이기 때문에 함수를 변수에 담거나, 다른 함수에 argument로 전달하거나 리턴값으로 사용할 수 있다. (자바스크립트도 마찬가지...)
그래서 아래 같은 것도 할 수 있다..
func x(n: Float) {
print("x: \(n)")
}
func add(num: Int, printFloat: (Float) -> Void) {
let n = Float(num)
printFloat(n)
return
}
add(num: 7, printFloat: x)
또는 함수를 리턴할 때에는...
func test() -> (String) -> String { // String을 받고 String을 리턴하는 함수를 리턴
// ...
}
화살표가 여러 개 붙어서 조금 헷갈리긴 하지만 함수를 argument로 전달하거나 리턴하는 식의 코드는 어떤 유틸리티를 작성할 때 사용하게 되는 것 같다.
반응형
'swift & iOS > swift' 카테고리의 다른 글
parameter vs argument (0) | 2022.01.16 |
---|---|
[swift] 클로저 closure (feat. 함수) (0) | 2022.01.16 |
[swift] 함수에 여러 개의 argument 넣기(...) (0) | 2022.01.16 |
[swift] guard...else... (0) | 2022.01.16 |
[swift] switch문 case에 조건 달기 (where 키워드) (0) | 2022.01.16 |