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. |