📅  最后修改于: 2023-12-03 15:20:25.049000             🧑  作者: Mango
在 Swift 中,函数和方法都可以被用来完成任务和返回值。但是,它们之间有些许不同,这篇文章将会解释它们之间的区别。
函数是独立于特定对象或者类型的公共代码块。它们可以被调用并执行它们定义的代码块,也可以接收和返回值。
Swift 中,函数的语法如下:
func functionName(parameterName: ParameterType) -> ReturnType {
// Function body
return returnValue
}
上面这段代码中:
func
:表示函数的开始。functionName
:是函数的名字。parameterName
:是函数的参数名。ParameterType
:是参数的类型。ReturnType
:是函数的返回类型。举个例子,这里我们定义了一个函数用来计算两个值的和,然后返回结果:
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
print(add(2, 3)) // output: 5
方法是绑定了特定对象或类型的函数。在 Swift 中,方法是一个定义在结构体、类或枚举类型中的函数。这些方法可以访问和操作它们所定义的对象或类型的属性和方法。
Swift 类方法和实例方法的语法如下:
// Class method
class func methodName(parameterName: ParameterType) -> ReturnType {
// Method body
return returnValue
}
// Instance method
func methodName(parameterName: ParameterType) -> ReturnType {
// Method body
return returnValue
}
上述代码中:
class func
:表示定义一个类方法。func
:表示定义一个实例方法。methodName
:是方法的名字。ParameterType
:是参数的类型。ReturnType
:是函数的返回类型。举个例子,这里我们定义一个沿着左右和上下方向移动的点类:
class Point {
var x = 0.0
var y = 0.0
func move(x: Double, y: Double) {
self.x += x
self.y += y
}
func moveTo(x: Double, y: Double) {
self.x = x
self.y = y
}
}
let point = Point()
point.move(x: 2.5, y: 6.0)
print("After moving, the point is now at (\(point.x), \(point.y))") //输出:After moving, the point is now at (2.5, 6.0)
point.moveTo(x: 5.0, y: 10.0)
print("After moving, the point is now at (\(point.x), \(point.y))") //输出:After moving, the point is now at (5.0, 10.0)
在这个例子中,我们创建了一个 Point 类,有两个属性 x
和 y
。然后我们定义了两个方法:move()
和moveTo()
,它们都用于移动这个点。其中,move()
方法移动距离(增加 x
和 y
的值),而moveTo()
方法使点移动到一个新的指定位置指定位置(更新 x
和 y
的值)。
虽然函数和方法的语法很相似,但它们之间仍然存在一些差别。函数是独立于特定的对象和类型的公共代码块,而方法是与对象或类型有关的代码块。方法只能被与它们相关的对象或类型调用,而函数可以在任何地方调用。