Swift程序 显示类中方法重载

Swift程序 显示类中方法重载

方法重载是一种技术,它允许我们在一个类中创建多个同名的方法,但有不同的参数类型或参数数量。被调用的具体方法是由方法调用时传递给它的参数类型或数量决定的。比如说–

class Book {
   // Methods
   func Author(){}
   func Author(x: Int)->Int{}
   func Author(x: String)->String{}
   func Author(a: Int, b: String)->Int{}
}

这里,Book类有四个重载方法。这些方法的名称是相同的,但参数类型和参数数量却不同。在这篇文章中,我们将学习如何写一个swift程序来展示类中方法的重载情况。

方法1:用不同的参数数重载

在这里,一个类包含多个同名但参数数量不同的方法。

例子

下面的Swift程序显示了类中不同参数数量的方法重载。

import Foundation
import Glibc

class MathematicOperation {

   // Method 1
   func product(x: Int, y: Int) -> Int {
      return x * y
   }

   // Method 2
   func product(x: Int, y: Int, z: Int) -> Int {
      return x * y * z
   }
}

// Creating object
let obj = MathematicOperation ()

// Calling method 1
print("Product:", obj.product(x: 10, y: 40))

// Calling method 2
print("Product:", obj.product(x: 80, y: 20, z: 90))

输出

Product: 400
Product: 144000

在上述代码中,我们创建了一个名为 “MathematicOperation “的类。这个类包含两个名称相同的方法,即 “product”,但参数数量不同。然后我们创建一个 “MathematicOperation “类的实例并调用 “product “方法。我们可以根据它们的参数数量来决定哪个方法被调用。如果我们传递两个参数,则调用第一个方法,如果我们传递三个参数,则调用第二个方法。

方法2:用不同类型的参数重载

在这里,一个类包含多个同名的方法,但参数的类型不同。这里参数的数量可以相同,但它们的类型必须不同。

例子

下面的Swift程序显示了一个类中不同类型参数的方法重载。

import Foundation
import Glibc

class Addition {

   // Method 1
   func sum(x: Int, y: Int) -> Int {
      return x + y
   }

   // Method 2
   func sum(x: Double, y: Double) -> Double {
      return x + y
   }

   // Method 3
   func sum(x: String, y: String)-> String{
      return x + y
   }
}

// Creating object
let obj = Addition()

// Calling method 1
print("Sum:", obj.sum(x: 10, y: 40))

// Calling method 3
print("Sum:", obj.sum(x: "Blue", y: "Sky"))

// Calling method 2
print("Sum:", obj.sum(x: 82.2, y: 21.2))

输出

Sum: 50
Sum: BlueSky
Sum: 103.4

在上面的代码中,我们创建了一个名为 “Addition “的类。这个类包含三个名字相同的方法,即 “sum “和相同数量的参数,但参数的类型不同。然后我们创建一个 “Addition “类的实例并调用 “sum “方法。我们可以根据它们的参数类型来确定哪个方法被调用。如果我们传递两个整数类型的参数,那么第一个方法被调用。如果我们传递两个字符串类型的参数,那么就调用第三个方法。如果我们传递两个双数类型的参数,那么就调用第二个方法。

结论

因此,这就是我们如何展示类中方法的重载。方法重载提供了更好的代码可读性、灵活性、简单性和多态性。此外,永远记住重载方法可以有相同的名字,相同或不同的返回类型,但它们的参数列表应该是不同的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 教程