VesselWheel

내부 함수 : nested functions 본문

Xcode Study

내부 함수 : nested functions

JasonYang 2023. 10. 16. 14:36

import UIKit

 

// 내부 함수 : nested functions

// 함수의 type : parameter -> return type

func outer() -> () -> (){

    // print("outer")

    // var number = 5

    func inner(){

        print("inner")

    }

    return inner

}

// 함수 외부에서 함수 내부로 직접 접근할 수 없음

// inner()

// print(number)

 

// outer() = inner

let f1 = outer()

f1()

 

func outer2() -> () -> (){

    var num1 = 10

    var num2 = 20

    var num3 = 30

    print("num1 :",num1)

    func inner(){

        // 내부함수에서 외부함수의 지역변수 사용

        print(num2, num3)

    }

    return inner

}

let f2 = outer2()

f2()

 

/*

   closure

     외부함수가 return 해서 종료되어도

     내부함수가 외부함수의 지역변수를 사용하는 경우,

     내부함수의 실행을 위해서 이 지역변수들은

     메모리에 남겨두어야 함

       ㄴ 이 메모리 영역을 클로저라고 함

 */

'Xcode Study' 카테고리의 다른 글

값 캡쳐하기 : capturing values  (0) 2023.10.16
Closure  (0) 2023.10.16
function type - 함수의 자료형(2/2)  (0) 2023.10.16
function type - 함수의 자료형(1/2)  (1) 2023.10.14
In-Out paramters// 입출력 파라미터  (0) 2023.10.14