Mutating
Changing structs state
Mutating
Changing structs state
0
0
Checkbox to mark video as read
Mark as read

In Swift, the mutating keyword is used in struct and enum definitions to indicate that a method will modify (or "mutate") the instance it belongs to. Unlike classes, structs and enums are value types, meaning they are copied when assigned to a new variable or passed to a function. By default, methods in structs and enums cannot modify instance properties. This is where mutating comes in, allowing methods in these types to modify their properties.

When to Use mutating in Swift

Use mutating when defining a method in a struct or enum that changes one or more of its properties. Without this keyword, any attempt to change properties inside a method will result in a compile-time error.

Example of mutating in a Struct

Here’s an example using a simple Point struct with a move method to change the x and y coordinates:

struct Point {
    var x: Int
    var y: Int
    
    mutating func move(byX deltaX: Int, byY deltaY: Int) {
        x += deltaX
        y += deltaY
    }
}

var point = Point(x: 2, y: 3)
point.move(byX: 3, byY: 4)
print(point) // Outputs: Point(x: 5, y: 7)

In this example, the move method modifies the x and y properties of Point, so it is marked as mutating.

0 Comments

Join the community to comment

Be the first to comment

Accept Cookies

We use cookies to collect and analyze information on site performance and usage, in order to provide you with better service.

Check our Privacy Policy