Avatar ·

¿Por qué deberías elegir una struct en lugar de una class en Swift?

¡Hola a todos! Acabo de empezar a aprender Swift y me atormenta una pregunta. Veo que en Swift hay tanto clases (class) como estructuras (struct). A primera vista, son muy similares: en ambas se pueden crear propiedades, métodos e inicializadores. Pero en todas partes escriben que las estructuras son "value types" (tipos por valor) y las clases son "reference types" (tipos por referencia). No termino de entender qué significa esto en la práctica. Escribí un ejemplo simple. Creé una clase `CarClass` y una estructura `CarStruct` con una propiedad `model`. Luego asigné la instancia de la clase a una nueva variable y cambié el modelo en la "copia". ¡El modelo también cambió en el objeto original! Pero con la estructura no ocurrió eso. Aquí está el código: ```swift class CarClass { var model = "Tesla" } struct CarStruct { var model = "Tesla" } let car1 = CarClass() let car2 = car1 // Esto no es una copia, sino una referencia al mismo objeto car2.model = "BMW" print(car1.model) // Imprime "BMW" — ¡el original cambió! let structCar1 = CarStruct() var structCar2 = structCar1