Una estructura es un bloque de construcción de propósito general de cualquier código y almacena variables de diferentes tipos de datos en una sola unidad. Al igual que otros lenguajes de programación en Swift, también puede definir las propiedades y los métodos en una estructura, donde las propiedades son el conjunto de constantes o variables que se almacenan como parte de la estructura. Además, no es necesario crear ninguna interfaz separada para implementar la estructura, puede definir la estructura en un solo archivo y luego la interfaz externa usará automáticamente la estructura.
En Swift, una estructura es un tipo de valor. Tipo de valor significa un tipo cuyo valor se copia cada vez que se asigna a una variable o una constante o se pasa a una función, por lo que podemos decir que cada vez que se crea una instancia de la estructura y cualquier tipo de valor que tengan las propiedades se puede copiar siempre que sea. se pasan en el código y cada vez que definimos una nueva estructura, eso significa que definimos un nuevo tipo de datos. Podemos usar la estructura para encapsular valores de datos simples y también podemos copiar los datos encapsulados y las propiedades relacionadas por sus valores, no por la referencia. Usando la estructura también podemos crear nuestros propios tipos que tienen sus propios métodos y propiedades. Simplemente podemos crear una estructura usando la palabra clave struct .
Sintaxis:
struct nombreDeEstructura{
// propiedades y métodos de la estructura
}
Ejemplo:
Swift
// Swift program to illustrate how to create a structure import Swift // Creating structure // Using struct keyword struct geeksfoegeeks{ // Properties of the Structure var employeeName = "Mohit" var employeeID = 1234 var employeeDepartment = "HR" var joiningYear = 2019 }
Instancia de estructura
Al igual que una clase en Swift, también podemos crear una instancia de la estructura y, al usar esta instancia, podemos acceder a las propiedades y métodos de la estructura. La estructura también utiliza la sintaxis del inicializador para crear una instancia. Es la forma más fácil y eficiente de crear una instancia de la estructura. Simplemente debe escribir el nombre de la estructura seguido de paréntesis vacíos, por ejemplo, geeksforgeeks(). Usando una sola instancia, podemos acceder a todas las propiedades y métodos de una estructura junto con sus valores y una sola estructura puede contener múltiples instancias.
Sintaxis:
let nombreInstancia = NombreEstructura()
Ejemplo:
Swift
// Swift program to illustrate how to create an instance of the structure import Swift // Creating structure // Using struct keyword struct geeksfoegeeks{ var employeeName = "Mohit" var employeeID = 1234 var employeeDepartment = "HR" var joiningYear = 2019 } // Creating the instance of geeksforgeeks structure var myinstance = geeksfoegeeks()
Acceso a las propiedades de la estructura
Podemos acceder a las propiedades de la estructura usando la instancia de la estructura seguida de un punto y el nombre de la propiedad. También usando esta sintaxis podemos acceder a las subpropiedades de la estructura. Esta sintaxis también se utiliza para asignar valor a la propiedad especificada oa la subpropiedad.
Sintaxis:
// Para acceder a la propiedad
nombreInstancia.NombrePropiedad
// Para acceder a la subpropiedad
nombreInstancia.NombrePropiedad.SubPropiedadNombre
// Para asignar valor a la propiedad
nombreInstancia.NombrePropiedad = 23
Ejemplo:
Swift
// Swift program to illustrate how to access the properties of a structure import Swift // Creating structure // Using struct keyword struct geeksfoegeeks{ var employeeName = "Mohit" var employeeID = 1234 var employeeDepartment = "HR" var joiningYear = 2019 } // Creating the instance of geeksforgeeks structure var myinstance = geeksfoegeeks() // Accessing the properties of geeksforgeeks structure print("Employee Name:", myinstance.employeeName) print("Joining Year:", myinstance.joiningYear)
Producción:
Employee Name: Mohit Joining Year: 2019
Inicializadores de miembro
La estructura siempre genera un inicializador de miembro automáticamente, también se conoce como el inicializador predeterminado. Entonces, sin perder tiempo, puede usar fácilmente estos inicializadores de miembros para inicializar las propiedades de una nueva instancia de estructura. O podemos decir que si la propiedad de la estructura no se inicializa con ningún valor inicial, entonces usando inicializadores de miembros podemos inicializar la propiedad con el valor inicial. Y también podemos usar inicializadores de miembros si la propiedad contiene el valor inicial.
Sintaxis:
let varName = nombreEstructura(nombrePropiedad1: Valor, nombrePropiedad2: Valor)
Ejemplo:
Swift
// Swift program to illustrate memberwise initializers import Swift // Creating structure // Using struct keyword struct geeksforgeeks{ // Properties of the structure var employeeName = "Mohit" var employeeID = 1234 var employeeDepartment = "HR" var joiningYear = 2019 } // Creating the instance of geeksforgeeks structure var myinstance = geeksforgeeks() // Accessing the properties of geeksforgeeks structure print("Employee Id before updating:", myinstance.employeeID) // Memberwise Initializers // Here we change the value of employeeID property // to a new value using Memberwise Initializers var newdata = geeksforgeeks(employeeID: 234) print("Employee Id after updating:", newdata.employeeID) print("________________________________") // Creating another structure struct employeeDetail{ var age : Int var contact : Int } // Creating the instance of employeeDetail structure // Here age and contact properties doesnot conatin // any initial value. So we initialize this property // using Memberwise Initializers var empinstance = employeeDetail(age: 24, contact: 7777777777) // Accessing the property print("Employee Age: ", empinstance.age) print("Employee Contact: ", empinstance.contact)
Producción:
Employee Id before updating: 1234 Employee Id after updating: 234 ________________________________ Employee Age: 24 Employee Contact: 77777777
Función Estructura interior
Una estructura también puede contener funciones. Cuando una función se define dentro de una estructura, esa función se llama método. El método puede utilizar las propiedades de la estructura. Para acceder a la función podemos usar la sintaxis de puntos. Como se muestra en el siguiente ejemplo, donde creamos un método increment() en la estructura geeksforgeeks para encontrar el incremento en el salario del empleado y luego acceder a ese método usando la sintaxis de puntos.
Sintaxis:
struct nombreDeEstructura{
func nombreFunción(){
// Cuerpo de la función
}
}
En Swift, generalmente no se le permite escribir métodos que cambien las propiedades, pero puede solicitarlos especialmente. Si desea cambiar la propiedad presente dentro del método, debe declarar esa función utilizando la palabra clave de mutación .
Sintaxis:
struct nombreDeEstructura{
función mutante nombreFunción(){
// Cuerpo de la función
}
}
Ejemplo:
Swift
// Swift program to illustrate method in structure import Swift // Creating structure // Using struct keyword struct geeksforgeeks{ // Property var salary = 230000 // Method func increment(){ // Finding the new salary let newsalary = 2 * salary print("New salary: ", newsalary) } } // Creating the instance of geeksforgeeks structure var myinstance = geeksforgeeks() // Accessing the method myinstance.increment()
Producción:
New salary: 460000
Usando self en la estructura
A veces, en una estructura, el nombre del parámetro del método es el mismo que el de la propiedad, por lo que el compilador no obtiene el contexto correcto en el que desea operar en la propiedad o en el parámetro del método. Entonces, para superar este tipo de situación, usamos el autopalabra clave. Por lo general, usamos la palabra clave self con la propiedad porque el nombre del parámetro automáticamente tiene mayor prioridad. Usando la palabra clave self, el compilador puede distinguir fácilmente entre el nombre del parámetro y la propiedad. Cuando estamos trabajando con la palabra clave self, lo que significa que estamos accediendo explícitamente al valor actual del tipo nombrado, es exactamente igual a la instancia misma, por lo que puede usar la propiedad self para referirse al objeto actual dentro de su propio objeto. método. La palabra clave self es generalmente útil en inicializadores, cuando dos variables con el mismo nombre están presentes en el mismo ámbito y desea asignar un nuevo valor a la propiedad, no al parámetro, en ese caso, puede usar la palabra clave self antes de la nombre de propiedad utilizando la sintaxis de puntos.
Sintaxis:
self.propertyName
Ejemplo:
Swift
// Swift program to illustrate self keyword import Swift // Creating structure // Using struct keyword struct geeksforgeeks{ // Property var article = 230 // Method func update(article: Int = 23){ // Finding the updated data let updatedData1 = article + 234 print("Updated Data 1: ", updatedData1) // Finding the updated data // Using self keyword let updatedData2 = self.article + 234 print("Updated Data 2: ", updatedData2) } } // Creating the instance of geeksforgeeks structure var myinstance = geeksforgeeks() // Accessing the method myinstance.update()
Producción:
Updated Data 1: 257 Updated Data 2: 464
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA