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
- Memberwise init & mutating methods
- Inheritance, overriding & final
- Access control (public/internal/fileprivate/private)