Swift-方法

60 阅读1分钟

方法分为:实例方法、类方法。

类似于OC中的-方法,+方法

  • 实例方法(Instance Method) 通过实例对象调用
  • 类方法(Type Method) 通过类型调用,用staticclass关键字定义
class Car {
    // 类变量
    static var cout = 0
    init() {
        Car.cout += 1
    }
    // 类方法
    static func getCount() -> Int { cout }

}

let c0 = Car()
let c1 = Car()
let c2 = Car()
print(Car.getCount()) // 3
  • 关键字self 在实例方法中,代表实例对象;在类方法中,代表类型

枚举、结构体、类,都可以定义实例方法、类方法。

关键字mutating

默认情况下,值类型的属性不能被自身的实例方法修改。mutating修饰方法后,可以允许这种修改行为。

结构体和枚举是值类型。

struct Point {
    var x = 0.0, y = 0.0

    mutating func moveBy(deltaX: Double, deltaY: Double) {
        x += deltaX
        y += deltaY
        // self = Point(x: x + deltaX, y: y + deltaY)
    } 
}

@discardableResult

func前面加个@discardableResult,可以消除:函数调用后返回值未被使用的警告。

@discardableResult
func get() -> Int {
  return 10 
}

get()