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: `static func` e `class func`. Ambos parecem permitir chamar o método no nível do tipo, não na instância, mas não entendo qual é a diferença fundamental.
Por exemplo, posso escrever:
```swift
class MyClass {
static func staticMethod() {
print("Este é um método estático")
}
class func classMethod() {
print("Este é um método de classe")
}
}
```
E chamá-los da mesma forma: `MyClass.staticMethod()` e `MyClass.classMethod()`. O resultado é o mesmo – as strings são impressas. Então por que duas palavras-chave diferentes?
Tentei criar uma subclass e sobrescrever o método, mas o compilador reclama se tento sobrescrever `static func`. Já `class func` parece permitir sobrescrita. Essa é a única diferença? Ou existem outras nuances? Talvez diferença de performance ou como são armazenadas na memória?
Explique, por favor, detalhadamente para que serve cada uma.
No answers yet.
Faça login para deixar uma resposta
Blogs
Monorepositório com Swift: organização de código para iOS e macOS