A struct is a value type: it is copied on assignment, and each copy is independent. A class is a reference type: assignment shares one instance, and both variables point to the same object. This single difference drives most design decisions in Swift.
How it works
swift
{ x: }
{ x: ; (: ) { .x x } }
a (x: )
b a
b.x
(a.x, b.x)
c (x: )
d c
d.x
(c.x, d.x)
