Swift - Estructuras
Swift 4 proporciona un bloque de construcción flexible para hacer uso de construcciones como estructuras. Haciendo uso de estas estructuras una vez se pueden definir métodos y propiedades de construcciones.
A diferencia de C y Objective C
La estructura no necesita archivos de implementación e interfaz.
La estructura nos permite crear un solo archivo y extender su interfaz automáticamente a otros bloques.
En Estructura, los valores de las variables se copian y pasan en códigos posteriores devolviendo una copia de los valores antiguos para que los valores no se puedan alterar.
Sintaxis
Structures are defined with a 'Struct' Keyword.
struct nameStruct {
Definition 1
Definition 2
---
Definition N
}
Definición de una estructura
Por ejemplo, supongamos que tenemos que acceder al registro de los estudiantes que contiene calificaciones de tres materias y averiguar el total de tres materias. Aquí markStruct se utiliza para inicializar una estructura con tres marcas como tipo de datos 'Int'.
struct MarkStruct {
var mark1: Int
var mark2: Int
var mark3: Int
}
Acceder a la estructura y sus propiedades
Se accede a los miembros de la estructura por su nombre de estructura. Las instancias de la estructura se inicializan con la palabra clave 'let'.
struct studentMarks {
var mark1 = 100
var mark2 = 200
var mark3 = 300
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")
Cuando ejecutamos el programa anterior usando el patio de recreo, obtenemos el siguiente resultado:
Mark1 is 100
Mark2 is 200
Mark3 is 300
Se accede a las marcas de los estudiantes por el nombre de estructura 'studentMarks'. Los miembros de la estructura se inicializan como mark1, mark2, mark3 con valores de tipo entero. Luego, la estructura studentMarks () se pasa a las 'marcas' con la palabra clave 'dejar'. De ahora en adelante, las 'marcas' contendrán los valores del miembro de la estructura. Ahora los valores se imprimen accediendo a los valores de los miembros de la estructura mediante '.' con sus nombres inicializados.
struct MarksStruct {
var mark: Int
init(mark: Int) {
self.mark = mark
}
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97
print(aStruct.mark) // 98
print(bStruct.mark) // 97
Cuando ejecutamos el programa anterior usando el patio de recreo, obtenemos el siguiente resultado:
98
97
Mejores prácticas de uso de estructuras
El lenguaje Swift 4 proporciona la funcionalidad para definir estructuras como tipos de datos personalizados para construir los bloques de funciones. Las instancias de estructura se pasan por su valor a los bloques definidos para manipulaciones posteriores.
Necesidad de tener estructuras
Encapsular valores de datos simples.
Para copiar los datos encapsulados y sus propiedades asociadas por 'valores' en lugar de por 'referencias'.
Estructura para 'Copiar' y 'Referencia'.
Las estructuras en Swift 4 transmiten a sus miembros sus valores en lugar de sus referencias.
struct markStruct {
var mark1: Int
var mark2: Int
var mark3: Int
init(mark1: Int, mark2: Int, mark3: Int) {
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)
Cuando ejecutamos el programa anterior usando el patio de recreo, obtenemos el siguiente resultado:
98
96
100
Otro ejemplo
struct markStruct {
var mark1: Int
var mark2: Int
var mark3: Int
init(mark1: Int, mark2: Int, mark3: Int) {
self.mark1 = mark1
self.mark2 = mark2
self.mark3 = mark3
}
}
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)
Cuando ejecutamos el programa anterior usando el patio de recreo, obtenemos el siguiente resultado:
34
42
13
La estructura 'markStruct' se define primero con sus miembros mark1, mark2 y mark3. Ahora las variables de las clases de miembros se inicializan para contener valores enteros. Luego, la copia de los miembros de la estructura se crea con la palabra clave "self". Una vez que se crea la copia de la estructura, los miembros del bloque de estructura con sus marcas de parámetros se pasan a la variable 'marcas' que ahora contendrá las marcas de los estudiantes. Luego, las marcas se imprimen como 98, 96, 100. El siguiente paso para los mismos miembros de la estructura se usa otra instancia denominada "falla" para señalar los mismos miembros de la estructura con diferentes marcas. Luego, los resultados ahora se imprimen como 34, 42, 13. Esto explica claramente que las estructuras tendrán una copia de las variables miembro y luego pasarán los miembros a sus próximos bloques de funciones.