方法(Method)
- 枚举、结构体、类都可以定义实例方法、类型方法
- 实例方法(instance method):通过实例对象调用
- 类型方法(type method):通过类型调用,用 static 或 class 关键字定义
- self
- 在实例方法中,self代表实例对象
- 在类型方法中,self代表类型
class Car {
static var count = 0
init() {
Car.count += 1
}
static func getCount() -> Int { count }
}
let car0 = Car()
let car1 = Car()
let car2 = Car()
print(Car.getCount()) // 3
在类型方法 getCount 中,count 等价于 self.count、Car.self.count、Car.count
mutating
- 结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改
- 在 func 前添加 mutating 可以允许这种修改行为
添加前:
添加后:
@discardableResult
在 func 前添加 @discardableResult ,可以消除函数调用后,返回值未被使用的警告
添加前:
添加后: