Muy buenas, soy Miguel y hoy les traigo otro nuevo tutorial.
Estructuras en Swift
En Swift, las estructuras son (o deberían ser) la abstracción utilizada para almacenar propiedades o métodos. Esto se debe a muchos aspectos, como su tipo de valor semántica.
Uno de los aspectos más interesantes de las estructuras Swift es que permiten al compilador sintetizar automáticamente constructores (o inicializadores).
Por ejemplo, a continuación definimos una estructura Persona con un nombre de propiedad y use el inicializador generado por el compilador para crear una nueva instancia.
El problema de definir nuevos constructores
Las funciones de inicialización generadas por el compilador son excelentes, pero ¿y si agregamos nuestro propio inicializador? Un inicializador sin parámetros, por ejemplo.
La forma más sencilla de hacerlo es definir un inicio personalizado dentro de la declaración de la estructura.
La parte mala de este enfoque es que ahora que hemos definido nuestro propio inicializador, el compilador no ha podido generar automáticamente la función de inicio predeterminada.
Por lo tanto, nuestra estructura solo tiene un método de inicialización válido, el que definimos.
Este caso particular de inicialización vacía se puede resolver estableciendo valores predeterminados en nuestras propiedades. Esto fue, podemos tener dos inicializadores proporcionados por el compilador.
Agregar nuevos constructores
Ahora bien, estos son todavía inits
generados automáticamente, ¿qué pasa si realmente queremos agregar un nuevo constructor que recibe parámetros, todavía podemos mantener las funciones de inicio generadas por el compilador?
Bueno, ¡resulta que podemos! Swift nos permite agregar nuevos constructores a estructuras y aún mantener los generados por el compilador mediante el uso de extensiones.
Si ampliamos una estructura y definimos un inicializador personalizado, el compilador puede sintetizar los inicializadores predeterminados y obtenemos nuestro constructor personalizado.
En nuestro ejemplo, podemos agregar un init
personalizado.
¡Y ahora tenemos tres formas de inicializar nuestra estructura!
Como resultado, nuestra implementación final se presenta a continuación.
Una de las mejores características de las estructuras en Swift
es que el compilador puede generar sus inicializadores. A menudo queremos agregar nuestro propio pensamiento de función de inicio, pero mantener estos inits
generados automáticamente puede ser bastante útil.
Como tal, una excelente manera de tener constructores personalizados mientras se mantienen los generados por el compilador es a través de extensiones.
Gracias por leer este tutorial.
Añadir comentario