Avatar ·

¿Cuál es la diferencia entre static func y class func en Swift?

¡Hola! Empecé a estudiar Swift y me encontré con dos formas similares de declarar métodos que pertenecen al tipo en sí, no a su instancia. Usando la palabra clave `static` antes de `func`, puedo llamar al método sin crear un objeto. Pero también vi que se puede usar `class func` para los mismos fines. Por ejemplo: ```swift struct MyStruct { static func sayHello() { print("¡Hola desde static!") } } class MyClass { class func sayHello() { print("¡Hola desde class!") } } ``` Ambas llamadas funcionan: `MyStruct.sayHello()` y `MyClass.sayHello()`. ¿Cuál es la diferencia fundamental entre ellas? ¿Por qué no se puede usar solo `static` en todas partes? ¿Y hay alguna restricción sobre el uso de `static` en clases? Agradecería una explicación detallada con ejemplos, especialmente sobre herencia, ya que he oído que ahí está el punto clave. <<>>

Métodos estáticos y métodos de clase: la diferencia clave en la herencia

La diferencia entre static fu