There are two different data types in Swift:
Let's take a look at these.
A class is a reference type. When you create an instance of a reference type and assign it to a variable or constant, you are not only assigning a value but also a reference that points to the value, which is located somewhere else (actually it is located in the heap memory). When you pass that reference to other functions and assign it to other variables, you are creating multiple references that point to the same data. If one of those variables changes the data, that change will reflect in all other variables as well. Here's an example that shows this:
let person = Person(firstName: "Sam", lastName: "Jakson") ...