English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift 내부 함수

이 문서에서는 Swift의 내장 함수와 그 사용 방법에 대해 배울 것입니다.

만약 하나의함수다른 함수의 본체 내에 존재하면 내장 함수라고 합니다.

내장 함수의 문법

func funcname() {
    //외부 함수 문장
    func anotherFuncname() {
        //내부 함수 문장
    }
}

여기서 함수 anotherFuncname은 다른 함수 funcname의 본체 내에 위치하고 있습니다.

주의해야 할 것은 내부 함수는 감싸고 있는 함수(외부 함수) 내에서만 호출하고 사용할 수 있습니다.

예제1:반환 값을 가지지 않는 내장 함수

func outputMessageByGreeting(_ message: String) {
    
    func addGreetingAndPrint() {
        print("Hello! \(message)")
    }
    addGreetingAndPrint()
}
outputMessageByGreeting("Jack")

프로그램을 실행할 때, 출력은 다음과 같습니다:

Hello! Jack

위 프로그램에서는 outputMessageByGreeting() 함수를 감싸고 있는 함수에서 내장 함수 addGreetingAndPrint()를 호출했습니다.

outputMessageByGreeting("Jack") 문장은 외부 함수를 호출합니다. 외부 함수 내의 문장 addGreetingAndPrint()는 "Hello Jack!"을 출력합니다.

addGreetingAndPrint 함수는 outputMessageByGreeting 함수 외부에서 호출할 수 없습니다.

예제2:매개변수와 반환 값을 가진 내장 함수

내장 함수는 매개변수와 반환 값을 가진 함수를 포함할 수 있습니다.

func operate(with symbol: String) -> (Int, Int) -> Int {
    
    func add(num1: Int, num2: Int) -> Int {
        return num1 + num2
    }
    
    func subtract(num1: Int, num2: Int) -> Int {
        return num1 - num2
    }
    let operation = (symbol == "+) ? add : subtract
    return operation
}
let operation = operate(with: "+)
let result = operation(2, 3)
print(result)

프로그램을 실행할 때, 출력은 다음과 같습니다:

5

위 프로그램에서,

  • 외부 함수는 operate()로, 반환 타입은 Function 타입 (Int, Int)입니다. -> Int。

  • 내부(내부) 함수는 add()와 subtract()입니다.

내부(내부) 함수 add()와 subtract()를 사용하는 블록 함수 외부의 operate()로 사용하고 있습니다. 이는 외부 함수가 이러한 함수 중 하나를 반환하기 때문에 가능합니다.

우리는 함수 operate() 외부의 내부 함수를 operation(2,3) 프로그램 내부에서 add(2,3) 컨트롤 타블에서 출력5。