중첩 함수(Nested Function)
- 내부 함수(inner Function) : 함수 내에 작성된 함수
- 외부 함수(Outer Function) : 내부 함수를 포함하는 바깥쪽 함수
내부 함수의 생명주기
- 내부 함수는 외부 함수가 실행되는 순간 생성, 종료되는 순간 소멸
- 외부 함수가 종료되면 내부 함수도 더는 존재하지 않음
함수의 은닉성
- 내부 함수는 외부 함수를 거치지 않으면 접근할 수 없음
- 외부 코드로부터 차단되는 결과
func outer(base: Int) -> String {
func inner(inc: Int) -> String {
return "\(inc)"
}
let result = inner(inc: base + 1)
return result
}
outer(base: 3) // 4
- 내부 함수를 참조할 수 있는 곳은 그 함수를 선언해준 외부 함수 이외에 없음
- 이러한 경우 내부 함수의 생명 주기는 전적으로 외부함수에 의존
- 외부 함수가 실행되면서 내부 함수에 대한 참조 발생 → 생성, 외부 함수가 종료되면서 내부 함수에 대한 참조 종료 → 소멸
[Day18] WeSplit (1) (0) | 2024.06.03 |
---|---|
[Day17] searchable (0) | 2024.05.21 |
[Day15] Function: 매개변수(4) (0) | 2024.05.02 |
[Day14] Function : 매개변수(3) (0) | 2024.05.01 |
[Day12, 13] Function : 함수의 기본 개념(1), (2) (0) | 2024.04.23 |
댓글 영역