Structs and Classes
Class References
Classes create reference types, so two variables can refer to the same object.
Share one instance
class_references.swift
class ScoreBox {
var score: Int
init(score: Int) {
self.score = score
}
}
let bonus =
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus
print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
class ScoreBox {
var score: Int
init(score: Int) {
self.score = score
}
}
let bonus =
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus
print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
class ScoreBox {
var score: Int
init(score: Int) {
self.score = score
}
}
let bonus =
let original = ScoreBox(score: 10)
let shared = original
shared.score = shared.score + bonus
print("bonus=\(bonus)")
print("original=\(original.score)")
print("shared=\(shared.score)")
classes
Assigning a class instance to another variable copies the reference. Mutating through either variable changes the same object.