0Pricing
Swift Academy · Lesson

Structs vs Classes, properties & inits

Compare value vs reference semantics; use stored & computed properties, property observers, initializers, and class deinit.

Overview

Swift has two main composite types: struct (value) and class (reference).

  • Structs copy on assignment
  • Classes share references

Value vs reference

Structs copy values; classes share references. Changing b does not affect a, but d affects c.

struct Point { var x = 0, y = 0 }
class CPoint { var x = 0, y = 0 }

var a = Point(x: 1, y: 1)
var b = a          // copy
b.x = 9
print("struct a.x =", a.x, "b.x =", b.x) // 1, 9

let c = CPoint(); c.x = 1
let d = c          // same reference
d.x = 9
print("class c.x =", c.x, "d.x =", d.x) // 9, 9

All lessons in this course

  1. Structs vs Classes, properties & inits
  2. Stored vs computed properties, observers
  3. Initializers & deinit (classes)
← Back to Swift Academy