중첩함수 1
함수의 반환 타입으로 함수를 사용할 수 있음.
import UIKit
func foo() -> String{
return "this is foo()"
}
func boo() -> (Void -> String){
return foo
}
let b = boo()
b()
//화살표 기준 왼쪽값이 인자 오른쪽이 반환값
//즉 아래와 같다.
func boo() -> Void -> String
import UIKit
func plus(a : Int, b : Int) -> Int{
return a + b
}
func minus(a : Int, b : Int) -> Int{
return a - b
}
func times(a : Int, b : Int) -> Int{
return a * b
}
func devide(a : Int, b : Int) -> Int{
guard b != 0 else{
return 0
}
return a / b
}
func calc(operand:String) -> (Int, Int) -> Int{
switch operand {
case "+":
return plus
case "-":
return minus
case "/":
return devide
case "*":
return times
default:
return plus
}
}
//방법 1. 가독성이 좋음(단계적)
let c = calc("+")
c(3,4)
//방법 2. 실행은 가능하지만 가독성이 떨어짐
calc("+")(3,4)
'IOS > Swift' 카테고리의 다른 글
객체지향 프로그래밍, 구조체와 클래스 비교 (0) | 2016.05.28 |
---|---|
클로져(Closure) (0) | 2016.05.28 |
인자값과 반환값 (0) | 2016.05.07 |
Swift 키보드 입력 (Swift Cin) (0) | 2016.05.07 |
일급 함수란? (0) | 2016.05.07 |
댓글 로드 중…
트랙백을 확인할 수 있습니다
URL을 배껴둬서 트랙백을 보낼 수 있습니다