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 中函式過載的優點

以下是函式過載的優點:

  • 它提高了程式碼的可讀性。

  • 透過為所有函式提供相同的名稱來減少多個函式名稱。

  • 它增強了型別安全性並減少了執行時錯誤。

廣告