import Foundation
/**
func1 출력하는 함수
*/
func func1() {
print("func1")
}
/**
func2 출력하는 함수
*/
func func2() {
print("func2")
}
/**
func1,2 실행하는 함수
*/
func excuteAll() {
func1()
func2()
}
/**
전달받은 함수들을 전부 실행하는 함수
함수형 프로그램 패러다임 안에서는
함수 역시 객체임으로
전달인자 또는 반환값으로 사용 가능
*/
func excute(tasks:[()->Void]) {
for task in tasks {
task()
}
}
excuteAll()
excute(tasks: [func1,func2])
/**
두 수의 합을 구하는 함수
- parameter first : 첫번째 수
- parameter second : 두번째 수
- returns : Int : 두 수의 합
*/
func sum(first:Int, second:Int) ->Int {
return first+second
}
print(sum(first: 1, second: 2))
/**
두 수의 합을 구하는 함수
(커링기법 : 여러개의 매개변수를 갖는 함수를 매개변수 하나를 갖는 함수의 나열로 표현)
- parameter first : 첫번째 수
- returns : ((Int)->Int) : (매개변수)와 first의 합을 반환
*/
func sum2(first:Int)->((Int) ->Int) {
return {second in first + second}
}
print(sum2(first: 1)(2))
'교육 > Swift' 카테고리의 다른 글
[swift] nil 체크 (0) | 2018.07.05 |
---|---|
[swift] 접근자 (0) | 2016.08.22 |
[swift] selector (0) | 2016.08.22 |
[swift] guard (0) | 2016.08.22 |
[swift] exception (0) | 2016.08.22 |