April 2015
Intermediate to advanced
556 pages
17h 47m
English
Structures and classes are far more alike in Swift than they are in most languages. However, there is one major difference in how they operate: classes are reference types; structures, enums, and tuples are value types.
What does it mean to be a value type? For one thing, a value type is always treated as a single value, even if it is composed of several individual values via its properties.
In practical terms, this means that when a value type is assigned or passed as a parameter, a copy is made. The following code demonstrates the effect with the Vector structure:
var vector0 = Vector(x: 0, y: 0) vector0 = {x 0, y 0} var vector1 = vector0 vector0 = {x 0, y 0}, vector1 = {x 0, y 0} vector0.x = 1 ...