swift

swift - Nested Functions

행복하게사는게꿈 2021. 1. 5. 17:21

Nested Functions

 

// Nested Function : 포함된 함수

// outer 함수밖에서는 inner함수를 직접 호출 불가능
//func outer() {
//    func inner() {
//        print("inner")
//    }
//    print("outer")
//}

outer()
// inner() -> 호출불가능

//inner 함수를 어떻게 호출할 수 있을까?

// outer 함수는 이제 파라미터도 없고 리턴타입도 없는 void를 리턴하는 형태
func outer() -> () -> () {
    func inner() {
        print("inner")
    }
    print("outer")
    
    return inner
}
// 리턴된 함수를 통해서 간접적으로 스코프를 확대하는 방법으로 사용가능
let f = outer()
f()