swift5-方法(Method)

Posted by AndyCao on September 10, 2019

方法(Method)

  • 枚举、结构体、类都可以定义实例方法、类型方法
    • 实例方法(instance method):通过实例对象调用
    • 类型方法(type method):通过类型调用,用 staticclass 关键字定义
  • 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 ,可以消除函数调用后,返回值未被使用的警告

添加前:

添加后: