Swift 方法分为:
实例方法 (Instance Methods)
类型方法(静态方法)
方法是与某些特定类型相关联的函数。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实例封装了具体的任务与功能。类型方法与类型本身相关联。Swift 类型方法 Objective-C 中的类方法(class methods)相似。
结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一。在 Objective-C 中,类是唯一能定义方法的类型。但在 Swift 中,你不仅能选择是否要定义一个类/结构体/枚举,还能灵活地在你创建的类型(类/ 结构体/枚举)上定义方法。
实例方法是被某个类型的实例调用的方法。你也可以定义在类型本身上调用的方法,这种方法就叫做类型方法。
类型方法语法
在方法的 func 关键字之前加上关键字 static ,来指定类型方法。类还可以用关键字 class 来允许子类重写父类的方法实现。
类型方法和实例方法一样用点语法调用。但是,你是在类型上调用这个方法
class SomeClass {
func increment() {
// 实例方法
}
static func someTypeMethod() {
// 在这里实现类型方法
}
class func overridesomeTypeMethod() {
// 在这里实现类型方法
}
}
SomeClass.overridesomeTypeMethod()
class SubClass: SomeClass{
override class func overridesomeTypeMethod() {
// 在这里重写父类类型方法
}
}
SubClass.overridesomeTypeMethod()