Published 2022-03-11

Swift - 方法

在 Swift 中,方法是与类、结构体、枚举等相关联的函数。方法允许我们在类、结构体、枚举等中定义某些行为。方法可以访问和修改实例属性,以及提供对实例的功能性访问。

Swift 中的方法分为两种:实例方法和类型方法。

实例方法

实例方法是与特定类、结构体、枚举等实例相关联的函数。实例方法提供对实例的访问和操作,可以访问和修改实例属性,也可以调用其他实例方法和全局函数。实例方法的定义和调用示例如下:

class Counter {
var count = 0

    func increment() {
        count += 1
    }

    func increment(by amount: Int) {
        count += amount
    }

    func reset() {
        count = 0
    }
}

let counter = Counter()
counter.increment()
counter.increment(by: 5)
counter.reset()

在上面的示例中,我们定义了一个 Counter 类,它有一个 count 实例属性和三个实例方法:increment、increment(by:) 和 reset。increment 方法将 count 属性加 1,increment(by:) 方法将 count 属性加上指定的 amount 值,reset 方法将 count 属性重置为 0。然后,我们创建了一个 Counter 实例 counter,并分别调用了它的三个实例方法。

类型方法

类型方法是与类型本身相关联的函数。类型方法是通过类型名称调用的,而不是通过实例调用的。类型方法可以访问和修改类型属性,也可以调用其他类型方法和全局函数。在 Swift 中,使用 static 关键字来定义类型方法,对于类类型,也可以使用 class 关键字来定义类型方法。类类型中的 class 方法可以被子类重写,而 static 方法不能被子类重写。类型方法的定义和调用示例如下:

class SomeClass {
  static func someTypeMethod() {
    // 在这里实现类型方法
  }
}

SomeClass.someTypeMethod()

在上面的示例中,我们定义了一个 SomeClass 类,它有一个 static 类型方法 someTypeMethod。在调用 someTypeMethod 时,我们使用类名来调用该类型方法,而不是使用实例。

总之,方法提供了一种方便的方式来定义类、结构体、枚举等的行为,以及提供对实例和类型的功能性访问。使用实例方法可以访问和修改实例属性,并提供对实例的访问和操作。使用类型方法可以访问和修改类型属性,并提供对类型的访问和操作。