Swift 嵌套函数怎么定义和使用?

文章导读
Previous Quiz Next 函数是一组语句的代码块,用于执行特定任务。当一个函数定义在另一个函数内部时,这种函数被称为嵌套函数。嵌套函数的作用域仅限于定义它们的外部函数,即只能从外部函数内部访问它们。如果尝试在外部函数外部访问它们,将会报错。
📋 目录
  1. 嵌套函数的语法
  2. Swift 中无参数的嵌套函数
  3. Swift 中带参数的嵌套函数
  4. Swift 中无返回类型的嵌套函数
  5. Swift 中具有返回类型的嵌套函数
A A

Swift - 嵌套函数



Previous
Quiz
Next

函数是一组语句的代码块,用于执行特定任务。当一个函数定义在另一个函数内部时,这种函数被称为嵌套函数。嵌套函数的作用域仅限于定义它们的外部函数,即只能从外部函数内部访问它们。如果尝试在外部函数外部访问它们,将会报错。

  • 在 Swift 中,一个函数可以包含多个嵌套函数,并且它们必须在使用前定义。

  • 嵌套函数通过将复杂任务分解为更小、可重用的组件来提高代码可读性并组织代码。

  • 嵌套函数将逻辑封装在有限的作用域内,并可以防止外部访问。

  • 它们只能访问外部函数中的变量。

嵌套函数的语法

以下是嵌套函数的语法 −

func outerFunction(){
   func nestedFunction(){
      // code
   }
   func nestedFunction2(){
      //code
   }
   nestedFunction1() 
   nestedFunction2()
}

Swift 中无参数的嵌套函数

在 Swift 中,我们可以定义一个不带任何参数的嵌套函数。此类函数在调用时不接受任何参数,并且可能返回或不返回任何值。

语法

以下是无参数列表的嵌套函数语法 −

func nestedFunction(){
   // Code
}

示例

使用嵌套函数显示世界杯获胜者名称的 Swift 程序。

import Foundation

// 外部函数
func worldCupTrophy(){

   // 无参数列表的嵌套函数
   func winnerName() {
      print("Winner of World Cup is INDIA")
   }    
   // 调用嵌套函数
   winnerName()
}
// 调用外部函数以显示结果
worldCupTrophy()

输出

它将产生以下输出 −

Winner of World Cup is INDIA

Swift 中带参数的嵌套函数

嵌套函数可以包含参数列表但没有返回类型。此类嵌套函数只能访问外部函数的变量和参数。嵌套函数可以包含多个参数,它们通过参数标签分隔。

语法

以下是带参数的嵌套函数语法 −

func nestedFunction(name1: Int, name2: Int){
   // code
} 

示例

使用嵌套函数连接两个字符串的 Swift 程序。

import Foundation

// 外部函数
func concatenateStrings(str1: String, str2: String){

   // 带参数列表的嵌套函数
   func displayResult(finalStr: String) {
      print("Concatenated String: \(finalStr)")
   }
   let result = str1 + str2
    
   // 调用嵌套函数
   displayResult(finalStr: result)
}

// 输入字符串
var string1 = "Welcome "
var string2 = ""

// 调用外部函数以显示结果
concatenateStrings(str1: string1, str2: string2)

输出

它将产生以下输出 −

Concatenated String: Welcome 

Swift 中无返回类型的嵌套函数

无返回类型的嵌套函数不返回任何值。它可能包含或不包含参数。

语法

以下是无返回类型的嵌套函数语法 −

func nestedFunction(name: Int){
   // code
   return
} 

示例

使用嵌套函数计算矩形面积的 Swift 程序。

import Foundation

// 外部函数
func Rectangle(length: Int, width: Int){

   // 无返回类型的嵌套函数  
   func displayArea(finalArea: Int) {
      print("Area of Rectangle: \(finalArea)")
   }
   let result = length * width 
    
   // 调用嵌套函数
   displayArea(finalArea: result)
}

// 输入值
var l = 10
var w = 12

// 调用外部函数以显示结果
Rectangle(length: l, width: w)

输出

它将产生以下输出 −

Area of Rectangle: 120

Swift 中具有返回类型的嵌套函数

嵌套函数可以包含参数列表而无需任何返回类型。具有返回类型的嵌套函数总是会返回某些值。

语法

以下是具有返回类型的嵌套函数的语法 −

func nestedFunction(name1: Int, name2: Int) -> ReturnType{
   // code
   return
} 

示例

使用嵌套函数计算两个图形(矩形和正方形)的面积总和的 Swift 程序。

import Foundation

// 无返回类型的外部函数
func Areas(length: Int, width: Int){

   // 具有返回类型的嵌套函数
   func sumOfAreas(area1: Int, area2: Int)-> Int {
    
      let Sum = area1 + area2
      return Sum
        
   }
   let areaOfRectangle = length * width
   let areaOfSquare = length * length
    
   // 调用嵌套函数
   print("Total Area: \(sumOfAreas(area1: areaOfRectangle, area2: areaOfSquare))")
}

// 调用外部函数以显示结果
Areas(length: 23, width: 25)

输出

它将产生以下输出 −

Total Area: 1104