美文网首页
Swift-OOP-Method

Swift-OOP-Method

作者: 守护地中海的花 | 来源:发表于2020-11-20 14:42 被阅读0次
  • 枚举、结构体、类都可以定义实例丰富、类型丰富
  • 实例方法:通过实例对象调用
  • 类型方法:通过类型调用,用static或者class关键字定义
self
  • 在实例方法中代表实例对象
  • 在类型方法中代表类型
class Car {
    static var count = 0
    init() {
        Car.count += 1
    }
    static func getCount() -> Int {
        //下面4种方式都可以
        //self.count
        //count
        //Car.count
        Car.self.count
    }
}
let c0 = Car()
let c1 = Car()
let c2 = Car()
print(Car.getCount())

//控制台打印:
3

mutating。翻译:异变 转换 为了改变值

  • 结构体和枚举是值类型,默认情况下,值类型的属性不被自身的实例方法修改
    在func关键字前加个mutating可以允许这种修改行为
struct Point {
    var x = 0.0,y = 0.0
    mutating func moveBy(deltaX:Double,deltay:Double) {
        x += deltaX
        y += deltay
    }
}

@discardableResult 翻译:可丢弃结果 为了不警告

func discardableResult() -> Void {
    struct Point {
        var x = 0.0,y = 0.0
        @discardableResult mutating func moveBy(deltaX:Double,deltay:Double) -> Double {
            x += deltaX
            y += deltay
            return x + y
        }
    }
    
    var p = Point()
    //下面不用返回值也不会提醒了
    p.moveBy(deltaX: 10, deltay: 10)
    
}
discardableResult()

相关文章

  • Swift-OOP-Method

    枚举、结构体、类都可以定义实例丰富、类型丰富 实例方法:通过实例对象调用 类型方法:通过类型调用,用static或...

网友评论

      本文标题:Swift-OOP-Method

      本文链接:https://www.haomeiwen.com/subject/fdbdiktx.html