Warum sollte man in Swift eine Struktur (struct) einer Klasse (class) vorziehen?
Hallo zusammen! Ich habe gerade angefangen, Swift zu lernen, und eine Frage beschäftigt mich. Ich sehe, dass es in Swift sowohl Klassen (class) als auch Strukturen (struct) gibt. Auf den ersten Blick sind sie sich sehr ähnlich: Beide können Eigenschaften, Methoden und Initialisierer haben. Aber überall steht, dass Strukturen „value types“ (Wertetypen) sind und Klassen „reference types“ (Referenztypen). Ich verstehe nicht ganz, was das in der Praxis bedeutet.
Ich habe ein einfaches Beispiel geschrieben. Ich habe eine Klasse `CarClass` und eine Struktur `CarStruct` mit einer Eigenschaft `model` erstellt. Dann habe ich die Instanz der Klasse einer neuen Variable zugewiesen und das Modell in der „Kopie“ geändert. Das Modell änderte sich auch im ursprünglichen Objekt! Bei der Struktur passierte das nicht. Hier ist der Code:
```swift
class CarClass {
var model = "Tesla"
}
struct CarStruct {
var model = "Tesla"
}
let car1 = CarClass()
let car2 = car1 // Das ist keine Kopie, sondern ein Verweis auf dasselbe Objekt
car2.model = "BMW"
print(car1.model) // Gibt "BMW" aus – das Original hat sich geändert!
let structCar1 = CarStruct()
var structCar2 = structCar1