¿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