Ответ
Нет, при присвоении копируется только ссылка (указатель) на объект, а не сам объект. Обе переменные начинают ссылаться на один и тот же экземпляр в памяти.
Пример с reference type (класс):
class Person {
var name: String
init(name: String) { self.name = name }
}
let alice = Person(name: "Alice") // Создан объект, `alice` ссылается на него.
let bob = alice // Копируется ССЫЛКА. `bob` теперь указывает на тот же объект.
bob.name = "Bob"
print(alice.name) // "Bob" - изменение через `bob` затронуло объект, на который ссылается `alice`.
Сравнение с value type (структура):
struct Point {
var x, y: Int
}
var p1 = Point(x: 1, y: 2) // Создана структура.
var p2 = p1 // Создается ПОЛНАЯ КОПИЯ значений.
p2.x = 3
print(p1.x) // 1 - оригинальная структура `p1` не изменилась.
Итог: Для reference types присваивание семантически означает «разделение объекта», для value types — «создание независимой копии».