Modificación de Constructores y Parámetros Opcionales en Swift
Clase 19 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
¿Cómo se definen los constructores en una estructura de colores?
Al trabajar con estructuras en lenguajes de programación, es crucial saber cómo definir constructores para inicializar estas estructuras adecuadamente. Al tomar como ejemplo la definición de un color, vemos que normalmente se hace utilizando valores de tipo decimal para los componentes rojo, verde y azul. Para este propósito, se puede crear un constructor init que acepte estos parámetros y los asigne a los atributos correspondientes de la estructura.
Ejemplo de un constructor básico
Para ilustrarlo, pensemos en una estructura Color con los componentes red, green y blue, todos de tipo Double. El constructor inicial sería así:
struct Color {
var red: Double
var green: Double
var blue: Double
init(red: Double, green: Double, blue: Double) {
self.red = red
self.green = green
self.blue = blue
}
}
Creación de un segundo constructor
Además, podemos necesitar un constructor diferente, como al trabajar con escala de grises, donde los tres componentes del color toman el mismo valor. Podríamos definir otro init que reciba solo el nivel de blanco entre 0 y 1:
init(grayscale white: Double) {
self.red = white
self.green = white
self.blue = white
}
De esta forma, se pueden tener múltiples constructores dentro de la misma estructura para diferentes necesidades.
¿Cómo usar etiquetas para simplificar la sintaxis?
En el mundo de la programación, a veces queremos aligerar la sintaxis y evitar redundancias al inicializar los objetos. Por ejemplo, al crear una estructura para representar temperaturas en Celsius, introducir etiquetas puede hacer que el código quede más limpio al prescindir del nombre del parámetro explícitamente.
Ejemplo de una estructura con etiquetas
Supongamos que la estructura Celsius puede ser inicializada con diferentes métodos. Podemos definir un init simplificado usando una barra baja _ en lugar del nombre del parámetro:
struct Celsius {
var temperatura: Double
init(_ valorCelsius: Double) {
self.temperatura = valorCelsius
}
}
Con este enfoque, se puede crear un objeto Celsius de forma más directa y legible:
let corporal = Celsius(37.0)
¿Cómo hacer que un parámetro sea opcional?
En ciertas situaciones, es útil permitir que algunos parámetros sean opcionales, de modo que no sean necesarios al inicializar la estructura o clase. Por ejemplo, en la creación de una pregunta en una encuesta, la respuesta no siempre es obligatoria.
Definición con parámetros opcionales
Podemos crear una clase para este propósito:
class SurveyQuestion {
var text: String
var response: String?
init(text: String) {
self.text = text
}
}
Aquí, response es opcional, y por lo tanto, podemos inicializar un objeto SurveyQuestion solo con el texto de la pregunta:
let question1 = SurveyQuestion(text: "¿Te gustan los tacos?")
Más tarde, si el usuario decide responder, simplemente se asigna el valor a response.
Práctica recomendada para desarrolladores
Ahora que conoces cómo trabajar con constructores, etiquetas y parámetros opcionales, puedes aplicar estos conceptos para mejorar la creación de objetos en tus proyectos:
- Implementa diferentes constructores: Prueba estructurar tus objetos con múltiples constructores que cubran distintas necesidades.
- Usa etiquetas sabiamente: Facilita la lectura de tu código usando etiquetas que hagan el uso de constructores más intuitivo.
- Considera la necesidad de parámetros opcionales: Piensa en la flexibilidad y posibles escenarios en los que ciertos datos no sean necesarios inmediatamente al crear el objeto.
Continúa experimentando y practicando, estos conceptos te serán muy útiles al tratar con estructuras más complejas en tu camino como desarrollador.ücklich