Assigning to self Within a Mutating Method
Mutating methods can assign an entirely new instance to the implicit self
property. The Point
example shown above could have been written in the following way instead:
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x deltaX: Double, y deltaY: Double) {
self = Point(x: x + deltaX, y: y + deltaY)
}
}
类方法:
You indicate type methods by writing the static
keyword before the method’s func
keyword. Classes may also use the class
keyword to allow subclasses to override the superclass’s implementation of that method.
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.someTypeMethod()
可读写性:
Structures and enumerations are value types. By default, the properties of a value type cannot be modified from within its instance methods.
However, if you need to modify the properties of your structure or enumeration within a particular method, you can opt in to mutating behavior for that method. The method can then mutate (that is, change) its properties from within the method, and any changes that it makes are written back to the original structure when the method ends.