Qual é a diferença entre static func e class func em Swift?
Olá! Comecei a estudar Swift e me deparei com duas formas semelhantes de declarar métodos que pertencem ao próprio tipo, e não à sua instância. Usando a palavra-chave `static` antes de `func`, posso chamar o método sem criar um objeto. Mas também vi que é possível usar `class func` para os mesmos fins. Por exemplo:
```swift
struct MyStruct {
static func sayHello() {
print("Olá de static!")
}
}
class MyClass {
class func sayHello() {
print("Olá de class!")
}
}
```
Ambas as chamadas funcionam: `MyStruct.sayHello()` e `MyClass.sayHello()`. Qual é a diferença fundamental entre elas? Por que não posso usar apenas `static` em todos os lugares? E existem algumas limitações quanto ao uso de `static` em classes? Ficarei grato por uma explicação detalhada com exemplos, especialmente sobre herança, pois ouvi dizer que este é o ponto chave.
<<>>
Métodos estáticos e métodos de classe: a diferença chave está na herança
A diferença entre static fu