📜  Swift –函数和方法的区别

📅  最后修改于: 2022-05-13 01:55:18.093000             🧑  作者: Mango

Swift –函数和方法的区别

有些人可以互换使用函数和方法,他们认为函数和方法在 swift 中是相同的。但是,函数和方法都是不同的东西,都有各自的优点。在代码中,函数和方法都可以再次使用,但方法是其中之一:类、结构和枚举部分,而函数不属于任何类、结构和枚举。简而言之,方法是与类型(即类、结构或枚举)相关联的函数。我们也可以这样想:每个方法也是一个函数,但不是每个函数也是一个方法。 Swift 对方法和函数都使用“func”关键字。这有点复杂,但我们将在这篇文章中看到函数和方法之间的明显区别。

函数:函数是执行特定任务的代码块。总是有一个与函数相关联的名称,并且为了调用该函数,我们使用这个名称来做一些工作。或者我们可以说函数是一段按名称调用并执行特定任务的代码。我们可以将数据作为参数传递给函数,函数也可以返回作为函数返回值的数据。特定类型不应与函数相关联。如果它是一个全局函数。我们传递给函数的所有数据都是显式传递的。

句法:

func function_name(parameters) -> returnType{
    // Body of the function
}

例子:

Swift
// Swift program to illustrate function
  
// Function
func gfg() 
{
    print("Hello GeeksforGeeks")
}
  
  
// Calling function
gfg()


Swift
// Swift program to illustrate method
  
// Geeks structure
struct Geek
{
    let speed: Int
  
    // Instance method
    func learn() 
    {
        print("learning at \(speed) MPH")
    }
      
    // Type method
    static func write()
    {
        print("write in a swift")
    }
  
}
  
// Driver code
  
// Create Car
let x = Geek(speed: 20)
  
// Instance Method
x.learn()
  
// Type Method
Geek.write()


输出:

Hello GeeksforGeeks

方法:方法是与特定类型相关联的函数。实例方法可以由结构、枚举和类定义。它封装了特定的工作和功能,以便与给定特定类型的实例一起运行。我们从与其对象关联的名称中调用方法。我们可以使用 swift 方法确定逐步改进基本组件或整个系统代码所需的工作。它还用于检查庞大而复杂的遗留系统。以下是两种类型的方法:

  • 实例方法
  • 类型方法

Swift 支持实例方法和类型方法。实例方法只能由该类型的实例调用。如果我们尝试用不同的对象访问实例方法,那么编译器会报错。在 swift 中,类型方法以 static 或 class 关键字为前缀。类型方法也是类型本身。

但是,swift 中本地名称和外部名称的行为对于方法和函数来说并不相同。在一个方法中,默认情况下,第一个参数名称由 swift 给出。并且默认情况下,给出第二个和随后的下一个参数用于本地和外部参数名称。

句法:

func method_name(parameters){
    // Body of the method
}

例子:

在下面的代码中,我们创建了两个方法。这里learn()是实例方法的例子,write()是类型方法的例子。在 type 方法中,我们使用 static 或 class 关键字作为前缀。这里我们为 write() 方法使用静态前缀。而且,您可以看到我们使用结构名称来调用它。我们使用 struct Geek() 的实例调用实例方法。

迅速

// Swift program to illustrate method
  
// Geeks structure
struct Geek
{
    let speed: Int
  
    // Instance method
    func learn() 
    {
        print("learning at \(speed) MPH")
    }
      
    // Type method
    static func write()
    {
        print("write in a swift")
    }
  
}
  
// Driver code
  
// Create Car
let x = Geek(speed: 20)
  
// Instance Method
x.learn()
  
// Type Method
Geek.write()

输出:

learning at 20 MPH
write in a swift

函数与方法的区别

Function

Method

Functions have an independent existence. It can be defined outside of the class.Methods do not have an independent existence. It is always defined within a class, struct, or enum.
Functions do not have any reference variables. Methods are called using reference variables.
Functions are called independently. Methods are called using instances or objects of the class.
Functions are the properties of structured languages.Methods are the properties of Object-oriented language.
It is a self-describing piece of code. It is used to manipulate the instance variable of a class.
A particular type should not be associated with the functions.A method is associated with a particular class, struct, or enum.
Every Function is not a method.Every method is a function.