Del curso: Domina Swift: Nivel 2

Modificar propiedades de structs en métodos de instancia - Tutorial de Swift

Del curso: Domina Swift: Nivel 2

Modificar propiedades de structs en métodos de instancia

Modificar propiedades de tipos struct en métodos de instancia. Empiezo haciendo un struct Punto con dos propiedades: x e y. Quiero añadir dos funciones que se van a llamar pasoEnX y lo que va a hacer es sumar 1 en la variable x y lo mismo para la variable y. Copiamos, ponemos «y» y obtenemos un error, porque los structs son tipos valor y por defecto sus propiedades no pueden ser modificadas desde los métodos de instancia. Solucionar este inconveniente es supersencillo. De hecho, Xcode ya nos recomienda añadir la palabra mutating. Hacemos Fix y de nuevo Fix, y ya estaría. Estos métodos nos permiten modificar las variables x e y de Punto. Vamos a crear una variable, puntoC, de tipo Punto, y ya podemos hacer puntoC.pasoEnX y mostramos puntoC. Ojo porque, cuando creas un struct, puedes crearlo como constante o como variable. Si lo creas como una constante, no vas a poder cambiar el valor de sus propiedades, aunque estas sean variables. Por ello, Swift no deja crear métodos que cambien sus propiedades, a menos que tú se lo indiques explícitamente con mutating. Vamos a ver si creamos una constante puntoD de tipo Punto y hacemos puntoD.pasoEnY, por ejemplo, Xcode nos va a avisar que esto no es posible, porque estamos ante una constante.

Contenido