Function Type
2018, Oct 25
Function Type 예제
하기 내용은 글그리님의 블로그를 참조했음을 밝힙니다
1. 함수를 파라미터로 갖는 예제
// func 설정
func plus(a: Int, b:Int) -> Int {
return a + b
}
func minus(a: Int, b: Int) -> Int {
return a - b
}
func multiply(a: Int, b: Int) -> Int {
return a * b
}
// func를 파라미터로 받는 func 설정
func printMath(f: (Int, Int)->Int, a: Int, b: Int) {
print("result = \(f(a,b))")
}
// 실행문
printMath(f: plus, a: 5, b: 3) // 8
printMath(f: minus, a: 5, b: 3) // 2
printMath(f: multiply, a: 5, b: 3) // 15
2. 함수를 반환 값으로 하는 예제
func plusplus(_ input: Int) -> Int {
return input + 1
}
func minusminus(_ input: Int) -> Int {
return input - 1
}
func factory(index: Bool) -> (Int)->Int {
return index ? plusplus : minumminus // 조건에 따라 리턴에 func를 넣어 돌린다... 하아...
}
var gage1 = 5
var gage2 = -7
let goToZero1 = factory(index: gage1 < 0) // 인덱스가 false라서 func마이너스 가동
let goToZero2 = factory(index: gage2 < 0) // 인덱스가 true라서 func플러스 가동