Variables de solo lectura en programación y su uso en estructuras y clases
Clase 8 de 27 • Curso de Programación Orientada a Objetos en Swift
Contenido del curso
- 5

Propiedades Almacenadas en Swift: Uso y Ejemplos Prácticos
04:49 - 6

Propiedades Lazy en Programación: Uso y Ventajas
07:17 - 7

Propiedades Computadas en Swift: Uso y Ejemplos Prácticos
10:31 - 8

Variables de solo lectura en programación y su uso en estructuras y clases
05:14 - 9

Implementación de Observers en Propiedades de Clases en Swift
07:18 - 10

Variables estáticas en clases, estructuras y enumerados
09:19
- 11

Métodos en Clases y Estructuras: Creación y Uso Práctico
07:35 - 12

Métodos Mutantes en Estructuras y Enumerados en Swift
09:05 - 13

Métodos Estáticos y Herencia en Programación de Videojuegos
10:50 - 14

Subíndices en Swift: Sintaxis y Aplicaciones Prácticas
09:02 - 15

Manipulación de Matrices y Subíndices en Programación
12:41 - 16

Herencia de Clases en Programación Orientada a Objetos
10:14 - 17

Sobrescritura de Métodos y Propiedades en Clases Derivadas
12:12
- 18

Inicializadores en Sweet: Creación y Uso Efectivo de Constructores
06:51 - 19

Modificación de Constructores y Parámetros Opcionales en Swift
00:10 - 20

Constructores Designados y de Conveniencia en Herencia de Clases
09:38 - 21

Constructores y manejo de inicialización opcional en Swift
08:42 - 22

Destructores en Programación: Liberación de Recursos Automática
07:13
¿Qué son las variables de solo lectura?
Las variables de solo lectura son un tipo especial de propiedad computada que permite obtener un valor pero no modificarlo. Imagina que están diseñadas para proteger ciertos datos críticos en tu estructura o clase, donde el cálculo o uso de un valor debe mantenerse constante. Un ejemplo clásico es el cálculo del volumen de un cubo a partir de sus dimensiones.
¿Cómo se implementan las propiedades computadas de solo lectura?
Para implementar una Computer Property de solo lectura en Swift, no es necesario indicar explícitamente las palabras get o set dentro de la propiedad. Simplemente calcula y devuelve el valor, asegurando que la propiedad sea consultable pero inmodificable, protegiendo así la integridad de los datos. Observa cómo definimos una estructura para un cubo y calculamos su volumen:
struct Cubo {
var anchura: Double = 0.0
var altura: Double = 0.0
var profundidad: Double = 0.0
var volumen: Double {
return anchura * altura * profundidad
}
}
let cubo = Cubo(anchura: 4, altura: 5, profundidad: 2)
print(cubo.volumen) // Output: 40
¿Qué sucede si intento modificar una propiedad de solo lectura?
Swift protege las propiedades de solo lectura impidiendo que se asignen nuevos valores. Si intentas modificar una propiedad de solo lectura, el compilador señalará un error. Esto es porque dichas propiedades están diseñadas para mantenerse inalteradas, asegurando que el cálculo o el uso del valor corresponda siempre a una lógica específica y controlada únicamente por el propietario de la clase o estructura.
// Intento incorrecto de asignación
// cubo.volumen = 57
// Error: la propiedad `volumen` es de solo lectura
¿En qué situaciones son útiles las variables de solo lectura?
Las variables de solo lectura son especialmente valiosas cuando:
- Quieres proteger un cálculo crítico derivado de otros valores.
- Deseas evitar que un programa externo altera propiedades críticas de una estructura o clase.
- Buscas claridad y precisión, calculando propiedades derivadas sin permitir cambios manuales inapropiados.
Ejercicios y prácticas recomendadas
Te recomendamos explorar cómo podrías crear tus propias estructuras o clases incorporando propiedades computadas. ¿Qué tal si defines una estructura para un saludo que varíe según el género, la persona y el idioma? Usa las propiedades computadas para hacer que tu código sea más robusto y fácil de mantener.
Intenta sintetizar los conceptos aquí tratados al crear una clase o estructura con propiedades computadas de solo lectura en Swift, y comparte tus ejercicios en el foro del curso para retroalimentación y mejoras continuas. ¡Ánimo y sigue desarrollando tus habilidades de programación!