0Pricing
Swift Academy · Lesson

Memberwise init & mutating methods

Understand Swift structs: auto-generated memberwise initializers and the need for mutating methods when changing properties.

Memberwise init & mutating methods is a free Swift Academy lesson on CoddyKit — lesson 1 of 3. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, one of 3 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Intro

Structs in Swift get a free memberwise initializer and require mutating for methods that modify state.

Memberwise init

Swift automatically provides an init(x:y:) for structs with stored properties.

struct Point {
    var x: Int
    var y: Int
}
let p = Point(x: 3, y: 5)
print(p.x, p.y)

Non-mutating method

Methods without mutating cannot change properties—they are read-only by default.

struct Counter {
    var count = 0
    func show() { print(count) }
}
let c = Counter()
c.show()

Mutating increment

Adding mutating lets a struct method modify its properties.

struct Counter {
    var count = 0
    mutating func increment() {
        count += 1
    }
}
var c = Counter()
c.increment()
print(c.count)

Reassigning self

A mutating method can even reassign self entirely.

struct Switch {
    var on: Bool = false
    mutating func toggle() {
        self = Switch(on: !on)
    }
}
var s = Switch()
s.toggle()
print(s.on)

Tips

Tips:

  • Use mutating only when you must change properties.
  • Keep most methods non-mutating for clarity.
  • Remember classes do not need this keyword.

Mutating keyword

Quick check: Why does a struct method need mutating to modify properties?

Recap

Recap: Structs get a free memberwise initializer. Use mutating when a method changes state or reassigns self.

Frequently asked questions

Is the “Memberwise init & mutating methods” lesson free?

Yes — the full text of “Memberwise init & mutating methods” is free to read here on the web, and the Swift Academy course includes 3 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Swift Academy course, upgrade to CoddyKit PRO.

What will I learn in “Memberwise init & mutating methods”?

Understand Swift structs: auto-generated memberwise initializers and the need for mutating methods when changing properties. You practise Swift Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Swift Academy?

No prior experience is required. Swift Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 3, so you can start here or from the beginning and move at your own pace.

How long does the “Memberwise init & mutating methods” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Swift Academy lesson?

Yes. Every Swift Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Memberwise init & mutating methods
  2. Inheritance, overriding & final
  3. Access control (public/internal/fileprivate/private)
← Back to Swift Academy