Nested Functions

작성일

Nested Functions

  • 내포된 함수
  • 다른함수에 포함되어 있는 함수

그냥 함수

func outer() {
  print("outer")
}

func inner() {
  print("inner")
}

outer() // outer
inner() // inner

이렇게 따로따로 그냥 사용할 수 있다. 하지만,

func outer() {
  func inner() {
    print("inner")
  }

  print("outer")
}

이렇게 사용하면 Nested Function이 된다. 이렇게 되면 글로벌스코프에서 inner함수를 호출할수 없게 된다.

func outer() -> () -> () {
  func inner() {
    print("inner")
  }

  print("outer")

  return inner
}

let f = outer() // () -> ()
f() // () -> ()

이렇게 사용하면(리턴하면) inner함수를 사용할 수 있게 된다.