상세 컨텐츠

본문 제목

[Day16] Function: 함수의 중첩과 클로저

Swift&SwiftUI

by (방울)도마토 2024. 5. 16. 16:53

본문

중첩 함수(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

- 내부 함수를 참조할 수 있는 곳은 그 함수를 선언해준 외부 함수 이외에 없음 

    - 이러한 경우 내부 함수의 생명 주기는 전적으로 외부함수에 의존 

    - 외부 함수가 실행되면서 내부 함수에 대한 참조 발생 → 생성, 외부 함수가 종료되면서 내부 함수에 대한 참조 종료 → 소멸 

 

 

 

'Swift&SwiftUI' 카테고리의 다른 글

[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

관련글 더보기

댓글 영역