Comprende con claridad cómo funcionan los métodos en Swift: son funciones dentro de una class o struct, se invocan con la sintaxis de punto y pueden ser de instancia o de clase usando static. Además, evita errores comunes usando self para referirte a las propiedades correctas.
¿Qué son los métodos y cómo se clasifican en Swift?
Los métodos son funciones asociadas a una class o struct. Si no llevan static, son métodos de instancia y requieren un objeto. Con static, los invoca la clase directamente.
Métodos de instancia: actúan sobre una instancia concreta.
Métodos de clase (static): los invoca la clase, no el objeto.
Sintaxis de punto: se usa para llamar a métodos y acceder a propiedades.
¿Cómo se declaran dentro de clases o estructuras?
Dentro de una class o struct, se usan funciones con func. Ejemplo con una clase Counter que gestiona un contadorcount y expone métodos de instancia: increment, increment(by:) y reset.
Importante: los métodos de instancia no usan static.
Clave SEO: métodos de instancia en Swift, clases y estructuras.
¿Cómo usar self para evitar ambigüedad con propiedades y parámetros?
Cuando una variable local o un parámetro enmascara (shadowing) una propiedad con el mismo nombre, usa self.propiedad para referirte de forma explícita a la propiedad de la instancia. Esto previene errores y mejora la legibilidad.
self: indica “de mí mismo”, apunta a la instancia actual.
Evita confusiones entre variables locales y properties de la clase o estructura.
Buena práctica: usar self. al acceder a propiedades dentro de métodos.
¿Cómo se aplica en estructuras con Point?
Ejemplo con una structPoint que responde si el punto está a la derecha de un valor dado usando el método isToTheRightOf.
Este es el primer vídeo de: 3. Métodos, subíndices y herencia.
toda la razón, ya me explico por que no entendía del todo
gracias por reportarlo, ya quedó corregido
Bye bye this :D
jajaj si
self == this
self
cuando tenemos una var o let en una funcion con nombre similar al de una propiedad de la clase xcode me toma por defecto el de la funcion, a menos que especifique cual de los dos es, porque en el auto completar sale la letra L de local o la letra M del modulo, es decir la clase. podemos escoger cualquiera de los dos pero por cuetion de buena practica y para que las personas que lean tu codigo sepan a cual te estas refiriendo, coloca self
Hola , no entiendo porque el 54 da falso y el 1 da verdadero
alguien me lo puede explicar porfa!!!!
Hola,
Porque 54 no es menor que 4, en cambio 1 si es menor que 4,
La validación lo esta realizando en la función, teniendo en cuenta que esto retorna un Bool:
func isToTheRight(ofx:Double)->Bool{return self.x> x
}
Donde X se esta asignado el valor 4 en :
let somePoint =Point(x:4,y:5)
La sobrecarga de métodos en una clase se logra definiendo múltiples métodos con el mismo nombre pero diferentes parámetros (número de parámetros, tipos o ambos). En Swift, esto permite crear métodos que realizan tareas similares pero con diferentes entradas. Por ejemplo:
classCalculadora{funcsumar(_ a:Int,_ b:Int)->Int{return a + b
}funcsumar(_ a:Double,_ b:Double)->Double{return a + b
}}
Así, puedes llamar a sumar con enteros o dobles, y Swift determinará cuál método usar.
struct Character{
var name: String
var health: Int
func isAlive() -> Bool{
let alive = self.health > 0
print(alive ? "esta vivo" : "esta muerto")
return alive
}
}
let character = Character(name: "Goku", health: 1000)