方法(Method)

2019-07-11  本文已影响0人  曹来东

self

class Car {
    static var count = 0
    init() {
        Car.count += 1
    }
    static func getCount() -> Int { count }//省略return
}
let c0 = Car()
let c1 = Car()
let c2 = Car()

print(Car.getCount())//3
print(Car.self.getCount())

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)
    }
}

enum StateSwitch {
    case low, middle ,high
    mutating func next() {
        switch self {
        case .low:
            self = .middle
        case .middle:
            self = .high
        case .high:
            self = .low
        }
    }
}

@discardableResult

struct Point {
    var x = 0.0 , y = 0.0
    
    mutating func moveX(deltaX:  Double) -> Double {
        x += deltaX
        return x
        //self = Point(x: x + deltaX, y: y + deltaY)
    }
}
var p = Point()
//警告:Result of call to 'moveX(deltaX:)' is unused
p.moveX(deltaX: 10)


struct Point {
    var x = 0.0 , y = 0.0
    @discardableResult mutating
     func moveX(deltaX:  Double) -> Double {
        x += deltaX
        return x
        //self = Point(x: x + deltaX, y: y + deltaY)
    }
}
var p = Point()
//使用@discardableResult修饰方法后课消除警告
p.moveX(deltaX: 10)
func get() -> Int {
    return 10
}
//Result of call to 'get()' is unused
get()

@discardableResult
func get() -> Int {
    return 10
}
//无警告
get()
上一篇 下一篇

猜你喜欢

热点阅读