Junior — Middle
¿Se pueden declarar métodos que cambian el estado de los objetos en clases en Swift?
sobes.tech AI
Respuesta de la IA
En Swift, los métodos que modifican el estado de un objeto se declaran con la palabra clave mutating, pero esto solo aplica a estructuras y enumeraciones (tipos de valor). Para las clases (tipos de referencia), los métodos por defecto pueden modificar las propiedades del instancia sin una palabra clave adicional.
Es decir:
- En las clases, se pueden declarar métodos que modifican el estado del objeto sin
mutating. - En estructuras y enumeraciones, los métodos que modifican propiedades deben estar marcados como
mutating.
Ejemplo de una clase con un método que modifica:
class Counter {
var count = 0
func increment() {
count += 1
}
}
let counter = Counter()
counter.increment()
print(counter.count) // 1
Ejemplo de estructura con método mutating:
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
var counter = Counter()
counter.increment()
print(counter.count) // 1