Swift - 函数重载



函数是一段用于执行特定任务的代码片段。在 Swift 中,我们允许重载函数。函数重载是一种技术,我们可以创建多个同名函数,但具有不同的参数或参数标签。

因此,当调用重载函数时,编译器会根据调用时提供的参数数量和参数类型来确定应该执行哪个函数。在 Swift 中,我们不能根据返回类型来重载函数。

我们可以通过以下方式重载函数:

  • 使用不同数量的参数进行重载。

  • 使用不同的参数类型进行重载。

  • 使用参数标签进行重载。

使用不同数量的参数进行重载

在使用不同数量的参数进行函数重载时,两个或多个函数的名称相同,但参数的数量不同。函数可以具有相同或不同的参数名称。在这种类型的函数重载中,函数的调用根据用户在函数调用期间提供的参数数量进行。

示例

Swift 程序演示使用不同数量的参数进行函数重载。

import Foundation

// Function 1 
func product(num1: Int, num2: Int){

   // Calculating product 
   let result = num1 * num2
   print("Function 1: Product = ", result)
}

// Function 2  
func product(num1: Int, num2: Int, num3: Int){

   // Calculating product 
   let result = num1 * num2 * num3
   print("Function 2: Product = ", result)
}

// Function 3 
func product(num1: Int, num2: Int, num3: Int, num4: Int){

   // Calculating product 
   let result = num1 * num2 * num3 * num4
   print("Function 3: Product = ", result)
}

// Calling function 1
product(num1: 23, num2: 34)

// Calling function 2
product(num1: 53, num2: 34, num3: 34)

// Calling function 3
product(num1: 23, num2: 34, num3: 55, num4: 21)

输出

它将产生以下输出:

Function 1: Product =  782
Function 2: Product =  61268
Function 3: Product =  903210

使用不同的参数类型进行重载

可以使用不同的参数类型重载函数,这意味着多个函数具有相同的名称和参数数量,但参数类型不同。在这种类型的函数重载中,函数的调用根据用户在函数调用期间提供的参数类型进行。

示例

Swift 程序使用嵌套函数添加两个字符串。

import Foundation

// Function 1 
func Addition(num1: Int, num2: Int){

   // Adding two values
   let result = num1 + num2
   print("Function 1: Result = ", result)
}

// Function 2  
func Addition(num1: String, num2: String){

   // Adding two values
   let result = num1 + num2 
   print("Function 2: Result = ", result)
}

// Calling function 1
Addition(num1: 23, num2: 34)

// Calling function 2
Addition(num1: "Hello!", num2: "Tutorialspoint")

输出

它将产生以下输出:

Function 1: Result =  57
Function 2: Result =  Hello!Tutorialspoint

使用参数标签进行重载

我们可以根据函数的参数标签进行重载。在这种类型的重载中,函数名称相同,但参数标签不同。这样,在执行时,编译器可以轻松识别应该调用哪个函数。

示例

Swift 程序根据函数的参数标签进行重载。

import Foundation

// Function 1 
func Area(length: Int, width: Int){
   let result = length * width 
   print("Function 1: Result=", result)
}

// Function 2
func Area(l: Int, w: Int){
   let result = l * w
   print("Function 2: Result=", result)
}

// Calling function 1
Area(length: 23, width: 3)

// Calling function 2
Area(l:13, w: 3)

输出

它将产生以下输出:

Function 1: Result= 69
Function 2: Result= 39

Swift 中函数重载的优点

以下是函数重载的优点:

  • 它提高了代码的可读性。

  • 通过为所有函数提供相同的名称来减少多个函数名称。

  • 它增强了类型安全性并减少了运行时错误。

广告