與c++類似,也是有實例方法和類型方法稿存。
對于結(jié)構(gòu)體笨篷、枚舉,由于它們是值類型瓣履,因此不能在實例方法中修改屬性值率翅。
實際應(yīng)用場景中,又需要修改屬性袖迎,因此swift提供了mutating方法
struct Point {
var x = 0.0, y = 0.0
mutating func moving(deltaX: Double, deltaY: Double) {
x += deltaX
y += deltaY
}
}
enum Orientation {
case North
case South
case West
case East
mutating func change() {
switch self {
case .East:
self = .South
case .South:
self = .West
case .West:
self = .North
case .North:
self = .East
}
}
}
類型方法
用static關(guān)鍵字來聲明類型方法冕臭,與類型屬性一樣。