Swift嵌套函数介绍和用法示例

本文概述

  • 没有返回值的嵌套函数
  • 带参数和返回值的嵌套函数
另一个函数体内的函数称为嵌套函数。
句法:
func function1() {//statements of outer functionfunc function2() {//statements of inner function}}

参数说明:
此处, function1是外部函数, 因为在function1内部还有另一个名为function2(嵌套函数)的函数。
注意:内部函数只能在外部函数内部调用和使用。没有返回值的嵌套函数
func wish1(_ message: String) {func wish2() {print("Good Morning! \(message)")}wish2 ()}wish1("Ajeet")

【Swift嵌套函数介绍和用法示例】输出
Good Morning! Ajeet

在上面的程序中, 从外部函数wish1()调用嵌套函数wish2()。
语句wish1(” Ajeet” )调用外部函数, 而语句wish2()调用外部函数, 该方法给出输出Good Morning Ajeet。
你不能在wish1函数之外调用wish2函数。
带参数和返回值的嵌套函数嵌套函数还可以包含参数和返回值。
例:
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 : subtractreturn operation}let operation = operate(with: "+")let result = operation(10, 20)print(result)

输出
30

在上面的程序中
  • 外部函数是operation(), 其返回值类型为Function(Int, Int)-> Int。
  • 内部(嵌套)函数是add()和减去()。
嵌套函数add()和减去()在封闭函数operate()之外被使用。这是可能的, 因为外部函数返回这些函数之一。
我们已将封闭函数operate()之外的内部函数用作operation(10, 20)。该程序在内部调用add(10, 20), 该输出提供输出30。

    推荐阅读