Вы вообще не используете переменные класса, вы используете переменные экземпляра.Переменная class существует только один раз для всего класса.Переменная instance отличается для каждого экземпляра класса (или экземпляра структуры).Это просто сбивает с толку читателей вашего вопроса.
Большая разница между классом Swift и структурой Swift заключается в том, что классы ссылаются , а структуры значения .Когда вы назначаете myName = Name (nname: "Sia"), вы создаете экземпляр типа Name, а myName является ссылкой на этот экземпляр.
test1 - это вновь созданная структура.Он не содержит значение myName, он содержит ссылку.test2 также является недавно созданной структурой.Он не копирует весь объект Name из test1, он только копирует ссылку.test1 и test2 используют одну и ту же ссылку.
Если вы изменили myName.name = "abc", то значение внутри объекта, на который ссылается myName, будет изменено, поэтому при печати test1.NewName.name или test1.NewName.name будет напечатано "abc".